2014-10-09 80 views
0

您好我有我自己開發的使用外部jar文件的java桌面應用程序。當我在Windows上打開它時,它會成功打開,但在Ubuntu 14.04上,它會失敗並顯示異常。Java應用程序不能在Ubuntu上打開,但在Windows上打開

的Windows:

java -cp bin;lib\thinlet.jar;lib\xercesImpl.jar;lib\xml-apis.jar;lib\commons-cli-1.0.jar;lib\jsyntaxpane-0.9.5-b29.jar;lib com.macpropeditor.propedit.ApplicationRunner 

Ubuntu的:

java -cp bin:lib\thinlet.jar:lib\xercesImpl.jar:lib\xml-apis.jar:lib\commons-cli-1.0.jar:lib\jsyntaxpane-0.9.5-b29.jar:lib com.macpropeditor.propedit.ApplicationRunner 

在Ubuntu上我得到如下錯誤:

[email protected]:~/MACPropEditor$ java -cp bin:lib\thinlet.jar:lib\xml-apis.jar:lib\xercesImpl.0.jar:lib\jsyntaxpane-0.9.5-b29.jar:lib com.macpropeditor.propedit.ApplicationRunner 
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/cli/ParseException 
    at java.lang.Class.getDeclaredMethods0(Native Method) 
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2570) 
    at java.lang.Class.getMethod0(Class.java:2813) 
    at java.lang.Class.getMethod(Class.java:1663) 
    at sun.launcher.LauncherHelper.getMainMethod(LauncherHelper.java:494) 
    at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:486) 
Caused by: java.lang.ClassNotFoundException: org.apache.commons.cli.ParseException 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366) 

有什麼我需要在Ubuntu的設置?請建議。 「lib」目錄中存在的所有jar。

Java版本窗口: Java版本「1.6.0_27」 的Java(TM)SE運行時環境(建立1.6.0_27-B07) 的HotSpot的Java(TM)客戶端虛擬機(建設20.2 - B06,混合模式,共享)

Java版本的Ubuntu : Java版本「1.7.0_65」 OpenJDK的運行時環境(IcedTea項目2.5.2)(7u65-2.5.2-3〜14.04) OpenJDK的服務器VM (構建24.65-b04,混合模式)

程序是在Windows機器上編譯並在Ubuntu上部署的。

回答

0

問題已解決:

我在Ubuntu上使用'\'而不是'/'。

所以下面CMD工作:

java -cp bin:lib/commons-cli-1.0.jar:lib/thinlet.jar:lib/xercesImpl.jar:lib/xml-apis.jar:lib/jsyntaxpane-0.9.5-b29.jar:lib com.macpropeditor.propedit.ApplicationRunner 
0

我敢打賭,這是由於不同的Java版本。 Ubuntu上的Java無法識別該類,因爲它們是使用更高版本的Java(例如Java 8,但使用Java 7運行)編譯的。

在這兩種情況下使用java -version檢查您的Java版本。

+0

@davamac,我更新了問題的Java版本。 你想讓我在Ubuntu上構建它嗎? – ExploringApple 2014-10-09 12:27:48

+0

不,問題原因是Ubuntu上的Java版本是_older_,但您已經證明它是較新的。我想下一步是驗證在Windows和Ubuntu上列出的jar文件是相同的(請檢查md5sum或類似文件)。然後嘗試查找哪個jar文件實際上包含未找到的類。 – davmac 2014-10-09 12:52:32

+0

謝謝suggetion。但罐子是相同的,因爲我只是將它們從windows複製到Ubuntu。也從commons-cli-1.0.jar - > NoClassDefFoundError:org/apache/commons/cli/ParseException問題的異常看起來像是問題要知道如何去更進一步:-( – ExploringApple 2014-10-10 06:28:49

相關問題