【发布时间】:2019-01-24 06:16:23
【问题描述】:
我创建了一个依赖于一些外部 jar 的 java 应用程序。现在我想为我的项目创建一个可执行的 jar。这意味着如果我双击该项目,那么它应该会执行。
【问题讨论】:
标签: java
我创建了一个依赖于一些外部 jar 的 java 应用程序。现在我想为我的项目创建一个可执行的 jar。这意味着如果我双击该项目,那么它应该会执行。
【问题讨论】:
标签: java
您可以使用 Ant 轻松做到这一点:
<jar jarfile="MyJar.jar" basedir="bin">
<manifest>
<attribute name="Class-Path" value="lib/lib1.jar lib/lib2.jar lib/lib3.jar"/>
<attribute name="Built-By" value="me"/>
<attribute name="Main-Class" value="mypackage.Myclass"/>
</manifest>
</jar>
这会将所有适当的条目添加到清单文件中。为了能够运行 jar,还需要创建一个 lib 文件夹并将所有依赖 jar 放在那里:
myjar.jar
lib/lib1.jar
lib/lib2.jar
lib/lib3.jar
【讨论】:
使用名为“fatjar”的eclipse插件
这是更新站点
http://kurucz-grafika.de/fatjar
只需右键单击项目并使用 fatjar 选项,下一步允许您选择将哪个库包含在 *.jar 中
【讨论】:
您需要将 MANIFEST.MF 文件添加到您的应用程序的 JAR 中,(在 META-INF 目录下 - 如果您使用“jar”命令行工具,它将确保文件在正确的位置结束)。它需要包含两个属性(至少):
有关 JAR 文件中清单文件的更多详细信息,请参见此处:http://java.sun.com/docs/books/tutorial/deployment/jar/manifestindex.html
如果您使用像 Apache Maven 这样的构建工具,您可能会发现它能够为您生成此文件。
【讨论】:
您想在 JAR 的清单文件中设置 Class-Path 属性。
This page 应该会给你一个很好的起点。
【讨论】:
如果您使用 Maven,程序集插件会非常简单地为您执行此操作:http://maven.apache.org/plugins/maven-assembly-plugin/howto.html
否则,您需要按照 JAR 文件教程中的说明进行操作:http://java.sun.com/docs/books/tutorial/deployment/jar/index.html 并创建一个清单文件,其中包括您的主类为 Main-Class: [classname] 并将您的外部 jar 列为 Class-Path: theirJar1 theirJar2 等。
【讨论】: