1

我这个问题的意思是人们可以启动嵌入在网络上的 .jar 应用程序还是必须下载它?我做了一个简单的在线游戏,现在人们不想单独下载游戏,而是直接通过浏览器访问它。我在桌面上开发了游戏,我应该采取哪些步骤使其成为 Web 应用程序,还是可以直接将其转换为 Web 应用程序?

4

4 回答 4

2

如果您不希望用户下载整个应用程序,那么您必须使用 Web 技术对其进行重新编码。

如果您希望您的答案能够通过他们的浏览启动应用程序(这涉及“透明地”下载应用程序),您可以像 @huseyin tugrul buyukisik 所说的那样制作一个 Applet,或者您可以使用 Java Web Start:http:// docs.oracle.com/javase/tutorial/deployment/webstart/

于 2013-05-21T10:48:07.333 回答
1

您可以将您的类包装在一个小程序中,只需添加一个按钮来启动该类。init() 方法将被重载以加载类, start() 方法是启动事物。Applet 是单线程的,因此如果您在其中一种重载方法中启动昂贵的循环,applet 可能会卡住。您可能需要线程。

于 2013-05-21T10:40:01.400 回答
1

没有从jarWeb 应用程序的直接转换。Web 服务器不会理解这一点。你需要的是

创建一个Web应用程序文件夹结构,复制jarweb-inf\lib文件夹

web.xml根据您的申请准备

将 Web 应用程序文件夹捆绑到war文件中或展开部署

典型的 Web 应用程序文件夹如下所示:

webapp
 |-*.html,*.images, *.js, *.css
 |-WEB-INF
 |-WEB-INF/web.xml
 |-WEB-INF/lib/*.jar
 |-WEB-INF/classes/*.class, *.properties

在这种情况下,IMO 的主要变化是更改将请求路由到 Web 服务器,而不是桌面应用程序采用的方法,即单个 JVM,调用直接路由到处理程序类实例。

假设一个案例,从 GUI 保存后,桌面应用程序可能会将数据序列化到本地磁盘,现在在 Web 应用程序的情况下,可能需要将此数据发送到负责此逻辑的 Web 服务器(例如特定的 SaveServlet)在服务器机器而不是客户端。

如果您提供桌面应用程序功能的特定用例,我们可能会提供更好的帮助。

于 2013-05-21T10:40:16.133 回答
0

您可以使用 jnlp(java 本机语言插件)来执行此操作,当用户访问您的页面时会自动下载(即使提供相同的链接)。

之后,它将询问用户执行该 jnlp(与 jar 相同)的权限,并且您的 jar 将在客户端执行。

http://www.mkyong.com/java/java-web-start-jnlp-tutorial-unofficial-guide/

于 2013-05-21T10:46:12.047 回答