java怎样编译成可执行程序exe?

Python0246

java怎样编译成可执行程序exe?,第1张

1.下载Fat Jar插件

2. 安装之后,右键选择项目时,会出现Build Fat Jar ,选择该方法,然后按照向导即可一步步导出可执行jar文件

如果有外部的jar包,比如说sqljdbc.jar,则把所有要使用的第三方的jar包都复制到{Java_home}\jre\lib\ext 目录下。(必须重新启动Eclipse才能加载这些jar包)而象SWT项目这样所使用的jar包,则不需要这么设置,直接在向导中选择所需要的jar包即可。

3.然后就可以在导出目录中运行这个可执行jar包,但如果是SWT项目,则必须在包含该可执行jar包的目录下有一个swt-win32-3235.dll之类的文件。

4.有了可执行的jar文件,然后可以使用exe4j.exe之类的jar转exe软件,如果使用exe4j.exe则当调用到sqljdbc.jar之类的外部包时,则必须将sqljdbc.jar也一并导入。安装向导就可以生成exe文件了,如果是SWT项目则也必须在同目录下有swt-win32-3235.dll之类的文件。

(1) 使用InstallAnywhere等工具,将应用程序和JRE一起打包,制作一个exe的安装包。

在安装过程中,用户可以选择使用他机器上的JRE或是这个安装包内的JRE来运行程序。这是很常见的一种做法,显得比较专业,而且原来的程序不需要作任何改动,安装后的程序即在JVM上运行,可以获得原本的效果。如JBuilder就是这么做的。InstallAnywhere中一个压缩的JRE大概是8M,它可以针对linux、 win、mac等多个操作系统打包。

(2) 使用JET、gcj等工具,将应用程序制作成一个真正的exe文件。

采用这种方式做成的exe文件可以直接在没有安装JRE的计算机上运行。Java类库全部被编译成dll,变为本地调用。

JET是收费的(从 http://www.excelsior-usa.com/jetdlevala.html可以下载3.6试用版)。JET安装好以后,它要把系统上安装的JDK编译一下,要等很久。如果JDK是1.4.2_05版还需要打一个补丁。

gcj有windows和Linux版,直接下载zip包,不需要安装。里面有不少例子,一些build的批处理文件。从原理来说,gcj自己实现了 JVM规范,当运行用gcj制作的exe(大约2M)时会启动里面的一个小型jvm,在上面跑应用程序。不过,gcj目前还不能完整地支持Swing。

但不管怎样,把Java做成纯exe实在是吃力不讨好,有很多限制,文件又大。

(3) 使用exe4j制作伪exe文件。

原理:可执行的jar包文件可以通过命令行java -jar jarfile.jar来执行。制作伪exe其实做法一样,只不过做成exe,调用系统中的java.exe来运行它。

一般情况下,exe4j做成的可执行文件仍需JRE支持,也就是说只能在安装了JRE的计算机上运行。不过有一种方法可制作伪exe文件,在没有安装 JVM的机器上也能运行:虽然exe4j并不提供将JRE打包的功能,但是它提供如何搜索JRE的方法。在第六项设定[JRE]中有一步[Search sequence],添加一个Directory方式的搜索入口,指定是相对目录“.” ,然后把JRE目录中的bin和lib两个目录复制到你的发布目录中就可以了。(当然你可以不用当前目录“.”,任何当前目录下的其他目录也可以,比方 “./JRE”之类的)。此时发布目录中生成的exe文件就在运行时就会调用当前目录中的JRE,而不是通过系统注册表及环境变量寻找JRE了,所以只要把整个发布目录(含exe及JRE的bin和lib)复制到其他计算机上,也就实现了“目标机即便没有安装过JRE也可以执行”。当然,这种发布方式无法得到一个内含JRE的单独的exe文件。另外,JRE的完整目录有50M,但是我们的程序只可能调用其中很少的一部分,你可以手动为发布目录中的JRE减肥、去掉不使用的文件,但这需要一定的经验。减肥后的JRE根据应用程序的不同,最小可以只有10M左右。

(4) 把java应用程序最后做成applet。

将java applet编入html文件,用浏览器方式打开,可以在任何没有安装JRE的机器上运行,好比exe文件一样(当然在安装了JRE的计算机上也可以用批处理文件或java命令来运行)。Windows IE打开applet靠的是一个叫“micosoft VM”的东西,现在该软件一般都是自带的。不过,Windows IE支持的JDK最高版本只能到JDK1.1。如果别人的机器运行不了applet,无非这三个原因:

a. 程序编译时使用的JDK版本太高,Windows IE不支持。用较老板版本的编译器重新编译(v1.1之前)就可以了。比如在dos下javac -target 1.1 *.jav(强制使用JDK1.1编译源程序)。

b. 用户的Windows没有micosoft vm(这种情况比较少见,只有windows XP第一版等极少数情况)。这种情况下,当客户的IE每次load applet时候, Windows会提示“没有download micosoft VM”,他只需从网上下一个就可以了。

c. 用户计算机上装有一些保护ie的软件(比如最新的windows sp2有时就会防止java applet的loading)。暂时关闭保护功能就可以了。

(5) 使用JBuilder、exe4j等工具制作成需要JRE支持的exe文件。

首先,使用开发工具,创建一个jar包接下来,使用开发工具快速build一个jar出来:然后,我们将jar包copy到E盘下jar文件下:

第二步,去网站搜索并下载exe4j工具

大家自己去网站下载转换工具,我这里是下载的是64位系统。对应的软件,下载完成之后,请解压开,并执行安装exe4j_windows-x64_5_01.exe。安装好了之后,运行exe4j Wizard程序,将出现如下界面:直接点击“next”,进入“project type”选择页面:选择点击“next”,进入“application configure”页面:在这个页面中,我们需要修改3个地方,第一个输入框中,我们需要给我们打包的程序,起一个“小名儿”,比如:狗娃儿 第二个,第三个输入框中,我们都固定选择jar所在的目录即可。完成之后, 再点击“next”,进入“executable configure”页面中:在这个页面中,有3个地方需要修正,第一个地方请选择“Console application”,后面在运行时,将会出现doc窗体。第二个地方,给我们应用起一个应用名。第三个地方,主要是为了让我们的应用在进程中只有一个。 选择好后,请点击“Advanced Options”,选择其中的“32-bit or 64-bit”,进入64位软件选择页面。在页面中,选择按照64位的安装方式进行安装,选择好之后,连接点击2次“next”,来到最重要的配置页面:在这张页面中,我们首先需要点击“+”号,添加我们的jar文件,然后再选择我们jar包中主入口类,也就是包含main函数的类。选择完毕之后,大家请点击“next”,在jre版本页面中输入最低版本,比如:1.7,那么我们的程序就不能在1.6版本上运行了。 所以尽量版本设置低一点!配置完毕之后,连续点击“next”即可完成转换工作,然后,我们打开e:/jar目录,应该就可以看到我们的exe文件了。双击exe文件,我们就可以正常启动我们的应该程序了,O(∩∩)O哈哈哈~,开心不?