java eclipse创建可执行jar

我用eclipse创建了可执行jar。 它依赖外部其他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。

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。 这是您的可执行文件夹,您可以从任何地方运行它。

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

截图

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

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