如何获取Java程序的可执行文件?

可能重复:
如何将我的java程序转换为.exe文件?

我正在尝试将用Java 6编写的程序导出到JAR文件。

我的项目包含一个来自Internet的Java库和一些Java源文件。 当我创建JAR文件时,默认情况下应该设置类路径,最终用户应该能够直接从命令提示符或其他来源运行项目。

我的目标是将所有内容导出到JAR文件,如果可能的话。 此外,程序输出应在命令提示符下给出。

如何以这种方式导出我的程序?

您需要为此编写META-INF/MANIFEST.MF文件; 该文件应位于您正在分发的jar文件中(即,人们使用java -jar )。 这是我写的最近“项目”的一个例子:

 Manifest-Version: 1.0 Ant-Version: Apache Ant 1.7.0 Created-By: 11.3-b02 (Sun Microsystems Inc.) Main-Class: com.hedgee.simonsays.Main Class-Path: lib/libthrift.jar 

要关注的主要字段是Main-Class (指定要查找main方法的Class-Path )和Class-Path (指定您正在使用的外部jar文件)。

我有两种不同方法的经验:

1)使用带有eclipse的fatjar插件创建一个包含所有嵌入的jar文件的jar文件(使用自定义类加载器)。 这将创建一个可点击的jar文件(如果它是一个GUI程序)。 如果你需要这个Jar的控制台输出,请按照Bhushan描述的jsmooth进行包装。

2)使用Eclipse 3.5 Milestone 6中的“Export – > Runnable Jar”和“将依赖库复制到子文件夹”选项创建一个普通的可运行jar,其中包含引用相关jar文件的正确清单(放在子文件夹中) 。 如果你想要一个不使用任何技巧的解决方案,这非常有效,但是脚本有点难。