【问题标题】:How to: JAR -> Web hosted application?如何:JAR -> Web 托管应用程序?
【发布时间】:2013-11-23 18:28:40
【问题描述】:

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

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

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

谢谢!

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

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

【问题讨论】:

    标签: java web executable-jar japplet


    【解决方案1】:

    您无需将其转换为小程序。您可以只使用 Java Web Start。

    【讨论】:

      【解决方案2】:

      您需要声明一个小程序扩展类,这将是您的小程序的入口点:

      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 构建函数。并重新包装所有东西。

      【讨论】:

      • 我从来不知道罐子需要额外的代码才能成为一个小程序。感谢您的回答并感谢您询问@humdiddlediddle。
      • @ArtemMoskalev 我已经重写了我的组件,使其在一个扩展 Applet 的类中对 Applet 友好,并像在 run() 方法中那样构建我的 GUI。我现在的问题是,以前,我有一个程序本身的运行方法(它是一种模拟)。在内部,它只是随着时间的推移更新某些东西,但这样做是在无限循环中进行的。没有这个运行代码,我的小程序可以构建 GUI,但是没有运行代码,GUI 就没有任何用处,这会导致小程序无法加载任何组件。有什么想法吗?
      猜你喜欢
      • 1970-01-01
      • 2015-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多