我使用eclipse来创建可执行的jar。它依赖于外部的其他jars。
在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。
因此,我的问题是如何使用命令行作为Eclipse生成可执行的jar。
发布于 2011-11-17 06:08:44
jar文件中不能包含其依赖项jar。对于Eclipse,它将解压依赖jar中的所有类,并将其与类文件一起捆绑到您的单个jar中。如果不是以eclipse的方式,则需要
1)创建一个清单文件,其中列出了所有依赖jars
Manifest-Version: 1.0
Main-Class: Your Main class
Class-Path: dependency1.jar dependency2.jar dependency3.jar
dependency4.jar dependency5.jar2)使用包含所有依赖jar的类路径和上面创建的mainfest文件,使用您的类文件创建jar。
3)在您创建jar的同一文件夹中,放置所有依赖jar。
现在,您的文件夹将如下所示,
yourjar.jar (使用上面创建的清单文件)依赖1.jar依赖2.jar依赖3.jar依赖4.jar依赖5.jar
4)现在,如果你想分享这个,你需要分享这个文件夹,你可以从这个文件夹启动你的jar。这是您的可执行文件夹,您可以从任何地方运行它。
发布于 2011-11-17 06:00:22
Eclipse使用Ant来打包jar文件,您可以保存eclipse用来生成jar的ant脚本,选中导出窗口中的复选框save Ant file:

因此,如果需要,您可以生成Ant脚本,然后直接从命令行使用ant执行它,而不再使用Build.xml。
发布于 2011-11-17 06:00:56
我创建可执行jar的首选方法是使用一个名为one-jar的实用程序。我有一篇博客文章讨论了如何在maven和ant中使用它:my one jar blog post
https://stackoverflow.com/questions/8159046
复制相似问题