java - 从不同的 jar 构建可执行文件

标签 java jar

我编写了一个程序,其中使用了各种 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/

相关文章:

c# - 如何在 Java 中使用 C# System.DBNull.value?

java - 明确设置 apache HttpClient 日志级别

java - 如何管理不正确的输入

java - 直接在Eclipse中运行源代码即可。为什么 Jar 文件将停止运行并且控制台中没有异常显示?

java - 通过 PHP Exec() 或类似函数启动 Minecraft_Server.jar

java - 从 jar 中获取资源 : classloader vs class resourceasstream

java - 如何将 Hashmap 传递给 spring data jpa 方法并在更新语句中使用它?

java - 如何在手机屏幕锁定时暂停计时器

java - JAR 文件失败 - Maven 和 Hibernate 项目

java命令行批处理文件