我编写了一个程序,其中使用了各种 Java 库。我使用 netbeans 制作了我的程序的 jar 文件。现在,如果我在任何其他位置使用该 jar,则我将必须手动包含所有 jar 库。
有什么方法可以让所有依赖库都使用我程序的 jar 来构建一个 jar 而不是那么多 jar 文件?
我知道有一些程序可以将 jar 转换为 exe,它们也做同样的事情,但我想将最后一个文件转换为 jar 格式,以便它也可以在 Linux 上运行。
谢谢
最佳答案
您可以使用 One-Jar
One-JAR 提供自定义类加载器,它知道如何从存档中的 jar 文件而不是文件系统中的 jar 文件加载类和资源。它根据存档的内部结构发现依赖 jar 文件,不需要自定义代码来执行此操作。 One-JAR 文件可以使用 Ant 或 Maven2 构建。您的应用程序可以使用 java -jar my-app.jar 运行
使用 Maven:您需要更新 plugins
部分 pom.xml
:
<plugin>
<groupId>org.dstovall</groupId>
<artifactId>onejar-maven-plugin</artifactId>
<version>1.4.4</version>
<executions>
<execution>
<goals>
<goal>one-jar</goal>
</goals>
</execution>
</executions>
</plugin>
并更新 pom.xml
中的 pluginRepositories
部分
<pluginRepository>
<id>onejar-maven-plugin.googlecode.com</id>
<url>http://onejar-maven-plugin.googlecode.com/svn/mavenrepo</url>
</pluginRepository>
当你执行 mvn package
时,你会得到 yourappname-one-jar.jar
并且你可以运行它 java -jar yourappname-one-jar .jar
关于java - 从不同的 jar 构建可执行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32267195/