需要用到的工具eclipse用于打包,exe4j用于生成exe文件的工具,这个是必须的。大家可以到网上下载我用的是4.0版本。
首先,在eclipse中建立一个工程项目JavaExe,然后写一个类。
package com.test;
public class JavaExe {
public static void main(String args[]){
System.out.println("测试将class文件变成.exe文件!");
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
![](https://i-blog.csdnimg.cn/blog_migrate/599ca55c235243cd9ecf7191145b9bf1.jpeg)
![](https://i-blog.csdnimg.cn/blog_migrate/43f28c683fa7f62f857179c6f873dc5f.jpeg)
接下来,这个界面需要给出manifese文件的路径,可以根据向导,选择JavaExe类的路径,在随便给一个名字。然后选择main class文件的路径。
![](https://i-blog.csdnimg.cn/blog_migrate/6f9ecf58936549f326781317f0ae562e.jpeg)
保存完成,你会在C盘看到一个JavaExe.jar的文件,我们使用命令行测试一下。
C:/java -jar JavaExe.jar
测试将class文件变成.exe文件!
没有问题。
下面开始详述步骤:
1.welcome-打开exe4j
![](https://i-blog.csdnimg.cn/blog_migrate/1da7de7d934e3f2591e4d05aa7d60fa8.jpeg)
如图,如果你有保存过的项目打包配置文件,那么点>>open打开即可。如果没有点>>next.
2.Project type-选择打包方式
![](https://i-blog.csdnimg.cn/blog_migrate/875050e1997a0e8724adea4fd3bdd80c.jpeg)
3. Application info-配置生成的应用程序的信息
![](https://i-blog.csdnimg.cn/blog_migrate/c884fa68dfe0b2f0964bfe037fcff8b0.jpeg)
设置你的应用程序的名称和将要生成的可执行文件的输出文件夹。然后>>next.
4.Executable info -配置可执行文件的参数
![](https://i-blog.csdnimg.cn/blog_migrate/d6eed2a5f731a75b33660be75d1d73c0.jpeg)
type项根据你的程序的类型确定,本例为GUI程序;接下来是文件名、可执行文件的图标、是否只允许同时刻只能运行一个应用程序、当主线程有误时是否抛出异常、更改工作目录(相对于可执行文件)。然后点>>advanced options>>version info
5.version info-设置版本信息
![](https://i-blog.csdnimg.cn/blog_migrate/d55ff981a7428b04b211a0bff0a9d9f3.jpeg)
6.java invocation-配置运行环境
![](https://i-blog.csdnimg.cn/blog_migrate/8f33ccd0621c06a4d3846b2422944c8b.jpeg)
先配置class path,将此项内原有的配置全部删除,然后点“+”找到你生成的jar文件,
![](https://i-blog.csdnimg.cn/blog_migrate/d037c4f69e27a9b7b4d91c50f0e07ef7.jpeg)
然后在上边的general中点浏览按钮,exe4j会自动找到你应用程序的入口-main class。
在下边的advanced options中选native libraries设置,此功能是添加你程序用到的外部jar包文件,这个我一直没用过,因为我做什么事都喜欢集中,所以在程序中用到的所有外部包全整合到jdk/jre里了,这样在给客户安装程序时只要把程序直接给他考过去就可以用了,不用再安装其它东西,他们会很喜欢的哦,毕竟用户不是搞程序设计的嘛。
7.jre-配置jre
![](https://i-blog.csdnimg.cn/blog_migrate/8f9414b41dfb050525f646d1755f6367.jpeg)
在这里配置你的jre版本类型,然后再看>>advanced option>>search sequence
![](https://i-blog.csdnimg.cn/blog_migrate/207aa88ad2dd03b199d5fd78e70a0ec7.jpeg)
在这里来配置你运行程序所需的jre/jdk的位置,如果你只是打包后本机运行,直接指定到你本机的jre/jdk目录即可,如果你打包后的程序要在别的客户机上运行,而该机又没装jdk,这时我们就要想另一种方法了。从客户的角度讲,拿到手的软件在安装过程中应尽可能少的给客户带来繁琐的安装事项,最好只点一下鼠标就能自动安装。因此,我们要让用户省去安装jdk的麻烦。要解决这个问题,我们可以把安装好的jdk复本放置在最终产品的根目录下,然后在上图中添加这个jdk复本为程序的运行环境
![](https://i-blog.csdnimg.cn/blog_migrate/c544a4fd53176ce87891bec2a1ba4b7d.jpeg)
search registty 可以扫描已经安装的jdk/jre,我们选择directory,为程序指定一个jdk目录,只需定位到jdk根目录即可,如上图。 然后>>next
这里要说明一点,用eclipse开发的程序只要一个jre就行了,jdk不用的,所以我是把jre打包进exe运行环境的,这样的话在java version下边的那个允许使用jre beta版的选项就要选中了。
8.preferred vm-选择虚拟机
![](https://i-blog.csdnimg.cn/blog_migrate/47858d11f6770a55164568062190a995.jpeg)
这个根据具体情况选择,本例为client. 然后>>next
9.splash screen -预载窗体
![](https://i-blog.csdnimg.cn/blog_migrate/1455c19b7965e14cf1673168b90d5fcb.jpeg)
在这里可以设置你的预载窗体界面,不过好像只认gif类型的图片,status line and version line 可以在position text lines visually预览界面中调整其显示位置。然后>>next,接下来是选择语言界面,根据自己情况选择。然后>>next
10.compile executable-编译生成可执行文件
![](https://i-blog.csdnimg.cn/blog_migrate/722b7cac3b19c1118b68350eb2c4de21.jpeg)
自动跳转至:
![](https://i-blog.csdnimg.cn/blog_migrate/d2ffb45a135e2ec7c2fa2bbcf199b961.jpeg)
在这里可以点击运行生成的可执行文件,也可以将本次配置方案保存起来以备后用。
将Java应用程序本地编译为EXE的其它几种方法(建议使用JOVE和JET)。
a. 利用微软SDK-Java 4.0所提供的jexegen.exe创建EXE文件,这个软件可以从微软的网站免费下载,地址如下:http://www.microsoft.com/java/download/dl_sdk40.htm
jexegen的语法如下:
jexegen /OUT:exe_file_name /MAIN:main_class_name main_class_file_name.class [and other classes] |
b. Visual Cafe提供了一个能够创建EXE文件的本地编译器。你需要安装该光盘上提供的EXE组件。
c. 使用InstallAnywhere创建安装盘。
d. 使用IBM AlphaWorks提供的一个高性能Java编译器,该编译器可以从下面的地址获得:http://www.alphaworks.ibm.com/tech/hpc
e. JET是一个优秀的Java语言本地编译器。该编译器可以从这个网站获得一个测试版本:http://www.excelsior-usa.com/jet.html
f. Instantiations公司的JOVE
http://www.instantiations.com/jove/...ejovesystem.htm
JOVE公司合并了以前的SuperCede,一个优秀的本地编译器,现在SuperCede已经不复存在了。
g. JToEXE
Bravo Zulu Consulting, Inc开发的一款本地编译器,本来可以从该公司的网页上免费下载的,不过目前在该公司的主页上找不到了。
h. 从www.towerj.com获得一个TowerJ编译器,该编译器可以将你的CLASS文件编译成EXE文件。