项目编译时工作正常,但将其导出到可运行的
jar
并启动后,找不到外部jar文件并抛出错误。我该怎么办?
如何将库附加到 JAR 文件?
将外部库添加到
manifest.mf
:
Class-Path: . MyApp_lib/extlib.jar MyApp_lib/extlib2.jar ...
您可以尝试构建一个包含所有罐子的
fat jar
。它包含一个自定义类加载器来加载项目外部引用的 jar。
尝试使用 http://fjep.sourceforge.net/ 插件来构建一个 fat jar。
您可以使用
File -> Export -> Other -> One Jar Exporter
导出包含 jar 的 java 项目。
这样导出的jar就可以正常工作了。
您必须将所有必需的 jar 保留在类路径中才能运行 jar。像这样运行你的罐子:
java -cp extlib/* -jar yourjar.jar
或 java -cp lib1.jar:lib2.jar:.. -jar yourjar.jar
确保在构建 jar 时,包含所有使用的库(包括类路径中的所有内容)。当您引用外部 jar 时,就会出现此问题。
您可以在 jar 的清单文件中包含类路径变量。