在Eclipse中运行可执行Jar文件时抛出异常求助
问题描述
Jar文件在Windows命令提示符中运行正常,但在Eclipse中运行Java源代码或Jar文件时抛出以下异常:
Exception in thread "main" java.lang.reflect.InvocationTargetException at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58) Caused by: java.lang.NoClassDefFoundError: org/apache/commons/io/IOUtils at edu.ucla.cs.examplecheck.utils.PatternUtils.loadPattern(PatternUtils.java:37) at edu.ucla.cs.examplecheck.APIMisuseDetector.main(APIMisuseDetector.java:48) ... 5 more Caused by: java.lang.ClassNotFoundException: org.apache.commons.io.IOUtils at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:445) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:587) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520) ... 7 more
解决办法
1. 检查Eclipse项目依赖配置
- 确认
commons-io依赖包已添加到项目构建路径:右键项目 →Build Path→Add External Archives,选择本地的commons-io-x.x.x.jar;如果用Maven/Gradle,确保依赖声明正确并同步到项目。 - 开启依赖的导出设置:右键项目 →
Build Path→Configure Build Path→ 切换到Order and Export标签,勾选commons-io对应的Jar包,保证它被纳入运行时类路径。
2. 验证Jar打包方式
- 若Jar是Eclipse导出的,确认导出时勾选了
Package required libraries into generated JAR,让依赖包被打包进目标Jar,避免运行时缺失类。 - 对比CMD运行的类路径:CMD中可能通过
-cp参数指定了包含commons-io的路径,把这个配置同步到Eclipse的运行类路径中。
3. 清理重建项目
- 执行
Project→Clean,选择当前项目清理编译缓存,再重新构建。 - 重启Eclipse,解决IDE缓存引发的类加载异常。
内容的提问来源于stack exchange,提问作者Saikat Mondal
相关产品推荐
相关产品推荐

