【发布时间】:2017-07-04 17:42:02
【问题描述】:
我正在使用 Eclipse 将我的项目导出到可运行的 jar 中。
我正在使用一些库,即 Apache commons、Java FX 和 GSON。
导出时,我选择将需要的库打包到生成的jar中: 这将创建一个名为 Editor.jar 的 jar
但是,当我执行“java -jar Editor.jar”时,我得到了 EqualsBuilder 类的 java.lang.ClassNotFoundException,它是 Apache commons 的一部分。
我尝试将 apache commons-lang3-3.4.jar 文件复制到工作目录中。我还尝试在“-jar”之前添加“-cp commons-lang3-3.4.jar”。仍然我总是得到 ClassNotFoundException。
有人看到我错过了什么吗?谢谢。
【问题讨论】:
-
使用任何提取工具打开 Editor.jar 并检查您的 jar 中是否有第三方 jar。如果是,请检查 Rsrc-Class-Path: 的路径。和类路径:.在你的 jar 的 MANIFEST.MF 文件中。
-
@Leozeo 感谢您的回复。打开 jar 后,我看到 GSON 和 FX jar 已包含在内,但未包含 Apache Commons jar。我想知道为什么?我回到构建路径并将 jar 添加为外部 Jar,现在部署的构建工作。然而,Apache Commons 现在在我的 Eclipse 构建路径中出现了两次,一次作为添加的“库”,一次作为添加的“外部 Jar”。
-
作为一般规则,在使用 Eclipse 时,我应该始终将外部库作为库和外部 Jar 添加吗?
标签: java eclipse jar executable-jar apache-commons