从不同的 jar 构建可执行文件
Building executable from different jars
我编写了一个程序,其中使用了各种 java 库。我使用 netbeans 制作了我的程序的 jar 文件。现在,如果我在任何其他位置使用该 jar,那么我将不得不手动包含所有 jar 库。
有什么方法可以让所有依赖库都使用我程序的 jar 来构建一个 jar 而不是那么多 jar 文件?
我知道有将 jar 转换为 exe 的程序,它们也做同样的事情,但我想将最后一个文件转换为 jar 格式,这样它也可以 运行 on Linux .
谢谢
是的,可以做到。由于您使用的是 Netbeans,此 article 可能会对您有所帮助。
你可以使用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
如果您使用的是 maven,这个 maven-shade-plugin 就是您要找的:https://maven.apache.org/plugins/maven-shade-plugin/
我编写了一个程序,其中使用了各种 java 库。我使用 netbeans 制作了我的程序的 jar 文件。现在,如果我在任何其他位置使用该 jar,那么我将不得不手动包含所有 jar 库。
有什么方法可以让所有依赖库都使用我程序的 jar 来构建一个 jar 而不是那么多 jar 文件?
我知道有将 jar 转换为 exe 的程序,它们也做同样的事情,但我想将最后一个文件转换为 jar 格式,这样它也可以 运行 on Linux .
谢谢
是的,可以做到。由于您使用的是 Netbeans,此 article 可能会对您有所帮助。
你可以使用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
如果您使用的是 maven,这个 maven-shade-plugin 就是您要找的:https://maven.apache.org/plugins/maven-shade-plugin/