是否可以将常规Java应用程序转换为Web应用程序?

时间:2013-05-21 10:36:35

标签: java

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

4 个答案:

答案 0 :(得分:2)

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

如果您希望您的答案能够通过他们的浏览启动应用程序(涉及“透明地”下载应用程序),您可以制作像@huseyin tugrul buyukisik这样的Applet,或者您可以使用Java Web Start:{ {3}}

答案 1 :(得分:1)

您可以将类包装在applet中,只需添加一个按钮即可启动该类。 init()方法将重载加载类,start()方法是启动东西。 Applet是单线程的,所以如果你在其中一个重载方法中启动昂贵的循环,applet就会卡住。你可能需要线程。

答案 2 :(得分:1)

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

  

创建Web应用程序文件夹结构,将jar复制到web-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),这需要小心这种逻辑在服务器机器而不是客户端。

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

答案 3 :(得分:0)

你可以使用jnlp(java本地语言插件)来做到这一点,当用户访问你的页面时,它会自动下载(即使提供相同的链接)。

之后它将要求用户执行该jnlp(与jar相同)的权限。你的jar将在客户端执行。

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