如何:JAR - > Web托管应用程序?

时间:2013-11-23 18:28:40

标签: java web executable-jar japplet

我一直在四处寻找所以请原谅我,如果我错过了,我知道有很多线程可以处理这类事情,但我还没有找到一个明确的答案。

我的问题(我认为)非常简单。我有一个可执行的JAR文件(在Eclipse中创建),我想在我的网站上托管它,大概是一个Applet。我对applet知之甚少,只是它们是在网页上运行的Java可执行文件。

这种过渡是微不足道的,还是要求我完全重写我的程序?请记住,它严重依赖于Swing组件,如JTabbedPanes,JButtons,JLabels等。

谢谢!

编辑:感谢答案,我已经将我的组件重写为applet友好的类,它扩展了Applet并像在run()方法中那样构建我的GUI。我现在的问题是之前,我有一个程序本身的运行方法(它是一种模拟)。在内部,它只是随着时间的推移更新了某些东西,但是在无限循环中这样做了。如果没有这个运行代码,我的applet可以构建GUI,但如果没有运行代码,GUI就没有任何意义,这会导致applet无法加载任何组件。有什么想法吗?

EDIT_2:我刚刚决定使用Java Web Start。感谢。

2 个答案:

答案 0 :(得分:4)

您无需将其转换为applet。您只需使用Java Web Start。

答案 1 :(得分:3)

您需要声明一个applet扩展类,它将是您的applet的入口点:

public class HelloWorld extends JApplet {
    //Called when this applet is loaded into the browser.
    public void init() {
        //Execute a job on the event-dispatching thread; creating this applet's GUI.
        try {
            SwingUtilities.invokeAndWait(new Runnable() {
                public void run() {
                    JLabel lbl = new JLabel("Hello World");
                    add(lbl);
                }
            });
        } catch (Exception e) {
            System.err.println("createGUI didn't complete successfully");
        }
    }
}

run方法(在示例中)或init(),您可以执行程序执行的所有操作。 接下来,您需要在浏览器html中指定您的applet:

<applet code="yourMainClass.class" height="250" width="350">
  <b>Sorry, you need Java to play this game.</b>
</applet>

总结:你需要重写你的入口点类(包含main方法的那个),从那里你需要调用所有相同的Swing-building函数。并重新包装一切。