You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Eclipse导出Jar报错但target目录已生成Jar文件的问题

解决Eclipse导出Jar报错但Maven已生成Jar的问题

Let’s break down exactly what’s causing these errors and how to fix them step by step:

1. 测试类Class文件找不到的根源

你执行了mvn clean compile install,但Maven的compile目标只会编译src/main/java下的业务代码,不会处理src/test/java里的测试类。而你在Eclipse导出时选择了包含测试类的资源,这些类没有对应的class文件(根本没被编译过),所以会抛出"Class files on classpath not found"错误。

解决办法:

  • 首选方案:导出Jar时直接排除src/test目录。生产环境用的Jar几乎不需要包含测试代码,在Eclipse导出的「Select resources to export」步骤里,取消勾选VeryOldccstore/src/test文件夹即可。
  • 如果确实需要包含测试类:先执行mvn clean test-compile install,这个命令会额外编译测试类并生成对应的class文件,之后再用Eclipse导出就能找到这些类了。

2. SVN文件重复条目错误

这些错误是因为你不小心把版本控制的.svn目录也包含在导出资源里了。每个目录下的.svn文件夹里都有同名文件(比如all-wcprops、entries),打包进Jar时,相同路径的文件会直接冲突,导致"duplicate entry"报错。

解决办法:

  • 在Eclipse导出Jar的资源选择步骤,手动取消所有.svn目录的勾选,或者用右上角的「Filter」功能添加过滤规则,直接排除所有.svn相关文件。
  • 更省心的方式:直接依赖Maven打包。运行mvn clean package,Maven会自动帮你排除版本控制文件、未编译代码和其他非必要资源,生成的Jar在target目录里——就是你已经看到的那个正常Jar,这比手动导出更可靠,完全避免人为误操作。

为什么Target目录已经有正确的Jar?

因为你执行的mvn install命令包含了package步骤,Maven打包时默认会排除测试类、版本控制文件和冗余资源,所以生成的Jar是完全正常的。而你手动用Eclipse导出时选了错误的选项(包含测试类、SVN文件),才触发了这些报错。


内容的提问来源于stack exchange,提问作者Vijay Manohar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 07:05:47