Jar Java应用程序未在Ubuntu上打开,但在windows上打开

Jar Java应用程序未在Ubuntu上打开,但在windows上打开,jar,noclassdeffounderror,Jar,Noclassdeffounderror,嗨,我有自己开发的java桌面应用程序,它使用外部jar文件。当我在windows上打开它时,它会成功打开,但在Ubuntu 14.04上,它会异常失败 窗口: 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

嗨,我有自己开发的java桌面应用程序,它使用外部jar文件。当我在windows上打开它时,它会成功打开,但在Ubuntu 14.04上,它会异常失败

窗口:

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上,我发现以下错误:

abc@abc-virtual-machine:~/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版本windows: java版本“1.6.0_27” Java(TM)SE运行时环境(build 1.6.0_27-b07) Java HotSpot(TM)客户端虚拟机(构建20.2-b06,混合模式,共享)

Java版本Ubuntu: java版本“1.7.0_65” OpenJDK运行时环境(IcedTea 2.5.2)(7u65-2.5.2-3~14.04) OpenJDK服务器虚拟机(构建24.65-b04,混合模式)


程序是在windows机器上编写的,也部署在ubuntu上。

我打赌这是由于不同的Java版本。Ubuntu上的Java无法识别这些类,因为它们是使用更高版本的Java(例如Java8,但使用Java7)编译的

使用
java-version
检查两种情况下的java版本问题已解决:

我在ubuntu上使用了“\”而不是“/”

因此,以下命令正在运行:

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

@davamac,我已经更新了有问题的java版本。你想让我也在ubuntu上构建它吗?不,问题是ubuntu上的Java版本较旧,但你已经证明它较新。我想下一步是验证您在类路径上列出的jar文件在Windows和Ubuntu上是否相同(请检查md5sum或类似文件)。然后尝试查找哪个jar文件实际包含未找到的类。但是JAR是一样的,因为我只是把它们从windows复制到ubuntu。此外,从异常情况看,commons-cli-1.0.jar-->NoClassDefFoundError的问题也很相似:org/apache/commons/cli/ParseException确实知道如何进一步:-(