2013-11-23 44 views
2

我一直在四處尋找,所以請原諒我,如果我錯過了,我知道有很多線程處理這種事情,但我還沒有找到明確的答案呢。如何:JAR - > Web託管應用程序?

我的問題是(我認爲)很簡單。我有一個可執行的JAR文件(在Eclipse中創建),我想將它放在我的網站上,大概是一個Applet。我對applet一無所知,只是它們是在網頁上運行的Java可執行文件。

這個過渡是微不足道的,還是需要我完全重寫我的程序?考慮到它很大程度上依賴於Swing組件,如JTabbedPanes,JButtons,JLabels等。

謝謝!

編輯:感謝一個答案,我已經重寫了我的組件,使其成爲applet友好的類,它擴展了Applet並構建了我的GUI,就像在run()方法中一樣。我現在的問題是,以前我有一個程序本身的運行方法(這是一種模擬)。在內部,它只是隨着時間的推移更新了某些東西,但卻是在無限循環中完成的。如果沒有這個運行代碼,我的小程序可以構建GUI,但是如果沒有運行代碼,GUI就沒有用處,這會導致小程序無法加載任何組件。有什麼想法嗎?

EDIT_2:我剛剛決定使用Java Web Start。謝謝。

回答

4

您不需要將其轉換爲小程序。您可以使用Java Web Start。

+0

是的,你說得對。其實我已經這樣做了。謝謝! – humdiddlediddle

3

您需要聲明的延伸小程序類,這將是你的小應用程序的入口點:

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> 

要總結:你需要重寫你的入口點類(含主要方法之一),需要從你那裏打電話都是一樣的搖擺建設功能。並重新包裝一切。

+0

我從來不知道jar需要額外的代碼才能成爲applet。感謝您的回答,並感謝您提問@humdiddlediddle。 –

+0

@ArtemMoskalev我已經重寫了我的組件,使其成爲Applet友好的類,它擴展了Applet,並像run()方法一樣構建了我的GUI。我現在的問題是,以前我有一個程序本身的運行方法(這是一種模擬)。在內部,它只是隨着時間的推移更新了某些東西,但卻是在無限循環中完成的。如果沒有這個運行代碼,我的小程序可以構建GUI,但是如果沒有運行代碼,GUI就沒有用處,這會導致小程序無法加載任何組件。有什麼想法嗎? – humdiddlediddle