java eclipse创建可执行jar

时间:2011-11-16 21:33:41

标签: java eclipse executable-jar

我用eclipse创建了可执行jar。它依赖外部其他罐子 在Eclipse中,您只需选择Extract required libraries into generated JAR即可 您可以创建一个可执行jar。它可以在安装jre的任何地方执行。

但是如果我使用命令行来编译jar javac -classpath [external jars] *.java
jar cfm [a name].jar manifest *.class [external jars]

它可以生成jar。但是jar只能在生成它的目录中执行。 如果我把它放到另一个目录或机器上,它会抱怨NoClassDefFoundError

所以,我的问题是如何使用命令行生成可执行jar作为Eclipse。

3 个答案:

答案 0 :(得分:3)

一个jar文件里面没有依赖jar。在Eclipse的情况下,它将解压缩依赖jar中的所有类,并将它与您的类文件一起捆绑到您的单个jar中。如果不是以日食的方式,你需要

1)创建一个列出所有依赖关系jar的清单文件

Manifest-Version: 1.0
Main-Class: Your Main class
Class-Path: dependency1.jar dependency2.jar dependency3.jar
 dependency4.jar dependency5.jar

2)使用包含所有依赖关系jar的类路径并使用上面创建的mainfest文件,使用类文件创建jar。

3)在您创建jar的同一文件夹中,放置所有依赖项jar。

现在你的文件夹看起来像这样,

yourjar.jar(使用您在上面创建的清单文件) dependency1.jar dependency2.jar dependency3.jar dependency4.jar dependency5.jar

4)现在,如果你想分享这个,你需要共享这个文件夹,你可以从这个文件夹启动你的jar。这是您的可执行文件夹,您可以从任何地方运行它。

答案 1 :(得分:2)

Eclipse使用Ant来打包jar文件,你可以保存eclipse用来生成jar的ant脚本,检查导出窗口中的Save Ant File复选框:

screenshot

所以,您可以生成Ant Build.xml脚本,然后直接从命令行使用ant执行它,如果需要,可以不再使用eclipse。

答案 2 :(得分:0)

我创建可执行jar的首选方法是使用名为one-jar的实用程序。我有一篇博客文章讨论如何在maven和ant中使用它:my one jar blog post