Java 如何:JAR->;Web托管应用程序?
我一直在四处寻找,所以请原谅,如果我错过了它,我知道有很多线程处理这类事情,但我还没有找到一个明确的答案 我的问题(我认为)很简单。我有一个可执行的JAR文件(在Eclipse中创建),我想把它作为一个小程序放在我的网站上。我对applet不太了解,只是它们是在网页上运行的Java可执行文件 这个转换是微不足道的,还是需要我完全重写我的程序?请记住,它严重依赖于Swing组件,如JTabbedPanes、JButtons、JLabels等 谢谢 编辑:多亏了一个答案,我已经在一个类中重写了我的组件,使其对applet友好,该类扩展applet并像在run()方法中那样构建我的GUI。我现在的问题是,以前,我有一个程序本身的run方法(这是一个排序模拟)。在内部,它只是随着时间的推移更新某些东西,但它是在一个无限循环中这样做的。如果没有这个运行代码,我的小程序可以构建GUI,但是如果没有运行代码,GUI将毫无用处,这将导致小程序无法加载任何组件。有什么想法吗Java 如何:JAR->;Web托管应用程序?,java,web,executable-jar,japplet,Java,Web,Executable Jar,Japplet,我一直在四处寻找,所以请原谅,如果我错过了它,我知道有很多线程处理这类事情,但我还没有找到一个明确的答案 我的问题(我认为)很简单。我有一个可执行的JAR文件(在Eclipse中创建),我想把它作为一个小程序放在我的网站上。我对applet不太了解,只是它们是在网页上运行的Java可执行文件 这个转换是微不足道的,还是需要我完全重写我的程序?请记住,它严重依赖于Swing组件,如JTabbedPanes、JButtons、JLabels等 谢谢 编辑:多亏了一个答案,我已经在一个类中重写了我的组
编辑2:我刚刚决定使用JavaWebStart。谢谢。您需要声明一个小程序扩展类,它将是小程序的入口点:
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 code="yourMainClass.class" height="250" width="350">
<b>Sorry, you need Java to play this game.</b>
</applet>
抱歉,您需要Java来玩这个游戏。
总而言之:您需要重写入口点类(包含main方法的类),从这里您需要调用所有相同的Swing构建函数。并重新打包所有内容。您不需要将其转换为小程序。您可以直接使用Java Web Start。我从来不知道JAR需要额外的代码才能成为小程序。感谢您的回答,也感谢您询问@humdedlediddle@ArtemMoskalev我已经在一个类中重写了我的组件,使其对applet友好,该类扩展applet并构建GUI,就像您在run()方法中所做的那样。我现在的问题是,以前,我有一个程序本身的run方法(这是一个排序模拟)。在内部,它只是随着时间的推移更新某些东西,但它是在一个无限循环中这样做的。如果没有这个运行代码,我的小程序可以构建GUI,但是如果没有运行代码,GUI将毫无用处,这将导致小程序无法加载任何组件。有什么想法吗?