![](/img/trans.png)
[英]java.lang.NoClassDefFoundError: org/apache/commons/lang3/ObjectUtils
[英]Java 9 JRE causes java.lang.NoClassDefFoundError: org/apache/commons/lang3/StringUtils on jar execution
我在Eclipse Oxygen.1a(OS:Windows 10 Home Edition 64位)上创建了一个jar文件。 我项目的JRE是jre1.8.0_152(64位版本)。 当我使用Java 8 JRE运行jar文件时,程序运行正常,但是当我使用Java 9 JRE时,出现以下错误:
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/apache/commons/lang3/StringUtils
当我使用Java 9 JRE 执行 java -jar myjarfile.jar
时,会发生此错误 。
我嵌入了最新版本的Apache Commons Lang (在项目库中添加了commons-lang3-3.7.jar ),并使用了最新的Java 9 Runtime(jre9.0.1)。 Apache页面指出需要Java 7.0+。
Java 9和Apache Commons库之间是否存在不兼容问题? 有什么办法解决这个问题?
更新 :
命令行包含(“调试”视图,右键单击并单击“属性”)
"C:\Program Files\Java\jre1.8.0_152\bin\javaw.exe"
-agentlib:jdwp=transport=dt_socket,suspend=y,address=localhost:50317
-Dfile.encoding=UTF-8
-classpath "C:\Program Files\Java\jre1.8.0_152\lib\resources.jar;
C:\Program Files\Java\jre1.8.0_152\lib\rt.jar;
C:\Program Files\Java\jre1.8.0_152\lib\jsse.jar;
C:\Program Files\Java\jre1.8.0_152\lib\jce.jar;
C:\Program Files\Java\jre1.8.0_152\lib\charsets.jar;
C:\Program Files\Java\jre1.8.0_152\lib\jfr.jar;
C:\Program Files\Java\jre1.8.0_152\lib\ext\access-bridge-64.jar;
C:\Program Files\Java\jre1.8.0_152\lib\ext\cldrdata.jar;
C:\Program Files\Java\jre1.8.0_152\lib\ext\dnsns.jar;
C:\Program Files\Java\jre1.8.0_152\lib\ext\jaccess.jar;
C:\Program Files\Java\jre1.8.0_152\lib\ext\jfxrt.jar;
C:\Program Files\Java\jre1.8.0_152\lib\ext\localedata.jar;
C:\Program Files\Java\jre1.8.0_152\lib\ext\nashorn.jar;
C:\Program Files\Java\jre1.8.0_152\lib\ext\sunec.jar;
C:\Program Files\Java\jre1.8.0_152\lib\ext\sunjce_provider.jar;
C:\Program Files\Java\jre1.8.0_152\lib\ext\sunmscapi.jar;
C:\Program Files\Java\jre1.8.0_152\lib\ext\sunpkcs11.jar;
C:\Program Files\Java\jre1.8.0_152\lib\ext\zipfs.jar;
C:\my Java lab\Eclipse Oxygen\Workspaces\JNotifier\JNotifier\bin;
C:\my Java lab\Eclipse Oxygen\Workspaces\JNotifier\JNotifier\src\libPack\commons-lang3-3.7.jar" libPack.JCostCalculator
通过使用以下设置通过Eclipse导出可运行的JAR创建的Jar文件:
第二次更新 :我在其他Windows 10专业版64位系统和具有Java 9的Ubuntu 16.04.3 LTS上测试了我的JAR,并遇到了相同的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.