Java:使用嵌入的依赖jar创建jar可执行文件

时间:2011-11-29 14:58:03

标签: java jar executable

我创建了一个带有清单的可执行JAR:

Manifest-Version: 1.0
Main-Class: MyClass
Class-Path: lib/ext.jar

如果我在.jar文件夹中创建了依赖 ext.jar 的文件夹 lib ,我可以成功运行此JAR。

我想在我的可执行JAR中嵌入 ext.jar ,以便在我想要的任何地方启动它,而无需创建lib文件夹。这将允许JAR文件自包含,包括其所有依赖项。

有没有办法做到这一点?

2 个答案:

答案 0 :(得分:3)

默认的Java类加载器无法在jar文件中找到嵌入式jar。您需要将Java程序设置为使用可以处理嵌入式jar文件的类加载器。据我所知,我没有在任何开源库中看到过,所以你可能需要自己编写一个。

或者,您可以提取所有jar文件并将内容合并到一个jar文件中。

Clean way to combine multiple jars? Preferably using Ant

答案 1 :(得分:2)

Java没有开箱即用的支持在jar中嵌入jar。可以通过编写自定义类加载器或使用已为此目的编写的工具来实现:Fat Jar