2013-03-13 73 views
0

我創建一個Java項目,當我從Eclipse的執行我的應用程序它的工作沒有任何問題,沒有異常。我創建了一個罐子來執行它的工作原理是我用於發展的計算機上,我試圖在另一臺PC,它只有當我在CMD執行java-jar program.jar工作。 我試圖用我的jar使用jarBundler創建一個應用程序mac(.app)。但問題是,當我運行它的應用程序時,它不會停止。事實上,我的一個按鈕執行一個腳本,並在執行結束時停止執行。啓動腳本的mac應用程序不會停止,如果我在終端中嘗試我的腳本,它將與它工作的jar一起工作。我不知道有什麼問題以及如何檢測它。如何使用jar創建一個mac應用程序?

回答

0

嘗試登錄合併(調試)消息到你的代碼(尤其是預期的,這不是結束執行的方法)。跟蹤對方法執行至關重要的所有對象的狀態,並比較不同環境下的結果。

如果您正在使用多個線程,添加日誌來跟蹤它們的狀態,並確保他們最終如預期,並且沒有死鎖。

關於環境的差異(不同的操作系統和控制檯/ UI執行),檢查 所有Java特定的環境變量,這將是JAVA_HOME,JAVA_OPTS等 有可能(儘管可能性很小),你的UI和控制檯用戶正在使用不同的環境。變量。

+0

我已經取回我的腳本執行的結果,我用它作爲一個日誌,但在腳本沒有完成,不使其退出代碼,我的日誌文件是空的。當我在手機上檢查安裝過程時,我使用我的代碼來安裝apk安卓手機,應用程序已經安裝,然後執行腳本,但它不停止。 – user2043602 2013-03-13 09:52:57

+0

我如何檢查所有使用的線程? – user2043602 2013-03-13 09:53:45

+0

我很困惑,你提到了Mac和控制檯,但現在有一個Android手機?也許嘗試在WHILE循環中登錄並查看它何時掛起。如果你在手機上運行它,你可以在Eclipse中檢查DDMS中的所有線程。否則,你可以看看jconsole。 – hovanessyan 2013-03-13 10:04:08

-1

如果腳本停止不MAC工作比你可以作出一些代碼的變化,寫了近腳本,因爲它既能平臺上工作。

在情況下,如果不是你寫不同的腳本收盤Mac等操作系統,所以首先你的代碼用於通過根據OS macthing通過代碼識別操作系統比運行代碼無法得到這樣的代碼。

專有操作系統一樣:

public static boolean isWindows() { 

     String os = System.getProperty("os.name").toLowerCase(); 
     // windows 
     return (os.indexOf("win") >= 0); 

    } 

    public static boolean isMac() { 

     String os = System.getProperty("os.name").toLowerCase(); 
     // Mac 
     return (os.indexOf("mac") >= 0); 

    } 

u能clearify關於關閉腳本。這將有幫助..

--Om--

相關問題