我浏览了网站上所有常见的帖子,但我的问题略有不同:
打包一个包含许多其他 jar 文件作为依赖项的简单 Java 应用程序的最佳做法是什么?
例如:我有 foo.java,里面有一个 main,还有 foo1.java、foo2.java,它们是从 foo.java 访问的。我在 eclipse 构建路径上使用 log4j.jar、mysql.jar。
现在我正在使用 ant,它可以很好地构建它。我所做的是编写一个引用所有类路径和 log4j 信息的简单 .sh 脚本。但这意味着我必须给他们所有那些 jar ,而且他们必须在正确的位置。我希望能够说“java -jar foo.jar”并让它在任何机器上运行而无需传输任何其他文件。
也许 .jar 不是最好的方式。我只想能够将一个文件提供给不知道如何设置类路径和所有内容的人,并让它能够运行。
我也很好奇最佳实践是什么。您通常只是给某人一个 jar 并给他们一个包含所有依赖项 jar 的 zip,然后告诉他们将其放在类路径中吗?
您是否制作了 .rpm?
我不熟悉 MAVEN,但如果那是最好的方法,我会做一个教程。现在我使用 ant。
最佳答案
就我个人而言,我不喜欢像这样将所有依赖项转储到单个 jar 文件中。这使得查看二进制分布的人很难弄清楚程序真正依赖什么。
我更喜欢用我的 jar 及其所有依赖项创建一个 lib 目录。在 manifest.mf 中使用 Class-Path:
指定类路径。在 list 中使用 Main-Class:
指定主类。然后使用 java -jar my.jar
运行应用程序。您只需要将您的类及其所有依赖项打包到 zip 或 tar 中即可。
Maven 确实有一项任务是自动创建 list ,还有一项任务是自动创建存档。但是,对于具有单个工件和很少更改的第 3 方库的简单项目,很容易在 ant 脚本中构建。
关于Java打包/构建常用技术Jar文件具体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5424761/