如何创建带有依赖jar包的可执行jar文件

8

我创建了一个依赖于某些外部jar包的Java应用程序。现在,我想为我的项目创建一个可执行的jar包。这意味着如果我双击项目,则应该执行。

6个回答

5
您可以使用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

属性顺序似乎很重要。Class-Path需要位于Main-Class之前。 - dacracot

2
使用Eclipse插件称为“fatjar”。 它的更新站点。

http://kurucz-grafika.de/fatjar

只需右键单击项目并使用fatjar选项,下一步允许您选择将包含在*.jar中的库。

1

您需要为应用程序添加一个MANIFEST.MF文件到JAR中 (在META-INF目录下 - 如果使用'jar'命令行工具,它会确保文件出现在正确的位置)。这将需要至少包含两个属性:

  • Main-Class: [您的应用程序中具有主要方法的类的完全限定名称]
  • Class-Path: [应用程序所需的JAR依赖项列表]

有关JAR文件中MANIFEST文件的更多详细信息,请参见此处: http://java.sun.com/docs/books/tutorial/deployment/jar/manifestindex.html

如果您使用像Apache Maven这样的构建工具,则可能会发现它可以为您生成该文件。


1

您想在JAR的清单文件中设置Class-Path属性。

此页面应该为您提供一个很好的起点。


0

考虑使用打包工具,例如IzPack或包装器工具,例如JSmooth


为了节省其他人的时间,IzPack是一种部署工具,它在计算机上安装主要的jar和其他jar文件,而JSmooth则将所有这些jar文件封装在一个EXE文件中,以便应用程序可以在Windows上运行。 - Lee Meador

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接