2011-12-11 71 views
3

我是java游戏编程的初学者。我开发了一个简单的java游戏并获得了它的一个.jar文件。它不是一个小程序。我想在浏览器上运行它。那可能吗?我怎样才能做到这一点?在浏览器上运行非applet .jar游戏

回答

0

这可能与Java Web Start。来自维基百科的文章:

Web Start还可以通过编写合适的JNLP文件启动打包在.jar文件中的未修改的小程序。该文件也可以传递小程序参数。这些小程序也运行在一个单独的框架中。 Applet启动器可能不支持将类加载为资源等特定情况。“同一篇文章提到了applet的一些问题”Web Start比applet具有优势,它克服了浏览器的Java插件和不同JVM版本的许多兼容性问题。

这太问题解释了一些关于Applets v. JWS权衡的......在我看来,如果你希望有很多人在不同类型的系统中使用你的应用程序,或者如果它使用的内存相当数量(可能与一场比赛),JWS更好。

+0

但是我的游戏已经存在于.jar文件中。我只是在寻找一种方法来部署它并让它在浏览器上运行,就好像一个小程序。 –

+0

JWS可以实现。从维基百科的文章中:“Web Start还可以通过编写合适的JNLP文件来启动打包在.jar文件中的未经修改的applet,该文件也可以传递applet参数,这样的applet也可以在单独的框架中运行,Applet启动器可能不会支持一些特定的情况,如将类加载为资源。“同一篇文章提到了applet的一些问题:“Web Start比applet具有优势,它克服了浏览器的Java插件和不同JVM版本的许多兼容性问题。” –

+0

这个SO问题解释了Applets诉JWS的一些权衡:http://stackoverflow.com/questions/2530380/java-web-start-vs-embedded-java-applet在我看来,如果你期望很多不同类型系统上的用户使用你的应用程序,或者如果它使用了相当数量的内存(可能与游戏有关),JWS更好。 –

0

如果你想在网页中嵌入一个Java应用程序,你需要它在applet形式。转换它们并不难,请参阅link以获得一些帮助。

1

假设你的jar的主类只是打开一个JFrame以显示其内容,就可以构建一个包装applet类简单地调用它,就像这样:

public class WrapperApplet extends Applet { 

    public void start() { 
     new Thread("application main Thread") { 
      public void run() { runApplication(); } 
     }.start(); 
    } 

    private void runApplication() { 
     my.Application.main(new String[0]); 
    } 

} 

如果你想让它更好的,有小程序秀只有在点击按钮后才能启动主方法。

相关问题