我创建了一个带有清单的可执行JAR:
Manifest-Version: 1.0
Main-Class: MyClass
Class-Path: lib/ext.jar
如果我在.jar文件夹中创建了依赖 ext.jar 的文件夹 lib ,我可以成功运行此JAR。
我想在我的可执行JAR中嵌入 ext.jar ,以便在我想要的任何地方启动它,而无需创建lib文件夹。这将允许JAR文件自包含,包括其所有依赖项。
有没有办法做到这一点?
答案 0 :(得分:3)
默认的Java类加载器无法在jar文件中找到嵌入式jar。您需要将Java程序设置为使用可以处理嵌入式jar文件的类加载器。据我所知,我没有在任何开源库中看到过,所以你可能需要自己编写一个。
或者,您可以提取所有jar文件并将内容合并到一个jar文件中。
答案 1 :(得分:2)
Java没有开箱即用的支持在jar中嵌入jar。可以通过编写自定义类加载器或使用已为此目的编写的工具来实现:Fat Jar。