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

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

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

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

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

有没有办法做到这一点?

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

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

清洁方式结合多个jar子? 最好使用Ant

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