java

位置:IT落伍者 >> java >> 浏览文章

将Java应用程序本地编译为EXE的几种方法


发布日期:2021年01月10日
 
将Java应用程序本地编译为EXE的几种方法

从获得一个TowerJ编译器该编译器可以将你的CLASS文件编译成EXE文件

利用微软的SDKJava 所提供的jexegenexe创建EXE文件这个软件可以从微软的网站免费下载地址如下

   

jexegen的语法如下

jexegen /OUT:exe_file_name

/MAIN:main_class_name main_class_file_nameclass

[and other classes]

Visual Cafe提供了一个能够创建EXE文件的本地编译器你需要安装该光盘上提供的EXE组件

使用InstallAnywhere创建安装盘

使用IBM AlphaWorks提供的一个高性能Java编译器该编译器可以从下面的地址获得

   

JET是一个优秀的Java语言本地编译器该编译器可以从这个网站获得一个测试版本

   

Instantiations公司的JOVE

JOVE公司合并了以前的SuperCede一个优秀的本地编译器现在SuperCede已经不复存在了

JToEXE

Bravo Zulu Consulting Inc开发的一款本地编译器本来可以从该公司的网页上免费下载的不过目前在该公司的主页上找不到了

公司主页   

下面这个FTP上曾经有过这个软件不知道现在是不是还在

ftp:///pub/java/tools/jet

jbuilder

这个是Borland不公开的使用技巧能够通过JBuilder来制作exe文件来启动Java文件

JBuilder并不支持本地编译机制但是有一个隐藏的技巧可以让你从可执行文件来启动Java程序可以出现或者不出现console窗口想做到这些需要JBuilder的bin目录下的这些文件:

JBuilderexe

JBuilderWexe (可选)

nfig

nfig

JavaLauncherdll

JBuilderexe是一个通用的可执行外壳文件用以启动Java程序JBuilderWexe好像是javawexe一样它把JBuilderexe包装起来但是运行时候不显示那个console的窗口使用这些文件的关键是文件名JBuilderexe查找一个文件叫nfig的配置文件里面包含了运行Java程序的必须信息同样的JBuilderWexe查找JBuilderexe来启动不带Console窗口的Java程序如果把JBuilderexe重命名为foo

exefooexe将去寻找nfig配置文件同样JBuilderWexe被重命名为fooWexe它会去寻找fooexe文件

说到这里聪明的读者应该猜到怎样利用JBuilderexe来启动应用程序了只要把JBuilderexeJBuilerWexenfig改名成相应的文件名在nfig里面指定主类和类路径就能够通过执行JBuilderexe(或者被改名后的exe文件)来启动Java应用程序了下面是用本机为例

Borland JBuilder 被安装在E:\jbuilder\目录下在E:\jbuilder\bin\下建立一个temp目录然后把JBuilderexenfigJavaLauncherdllnfig四个文件拷贝到E:\jbuilder\bin\temp\目录下然后在这个目录下建立一个hello目录在这个目录下生成一个hellojava文件即E:\jbuilder\bin\temp\hello\hellojava文件

file://hellojava/

package hello;

public class hello{

public static void main(String s[]){

Systemoutprintln(Hello Exe file!);

}

}

编译成class文件然后打开nfig文件作相应的修改

在nfig里面找到下面两行

# Start JBuilder using the its main class

mainclass comborlandjbuilderJBuilder

修改为

# Start JBuilder using the its main class

mainclass hellohello

addpath E:/jbuilder/bin/temp/

addpath命令是把目录加入类路径中这个命令和其它config里面可以识别的命令可以在JBuilder/bin目录下的config_readmetxt里面找到详细说明

然后将nfig里面的javapath修改成相对的路径例如原来是

javapath /jdk/bin/java

修改成

javapath //jdk/bin/java

最后

将JBuilderexenfig修改成所需要的文件名例如fooexe和nfig文件

现在执行fooexe文件

至此通过修改JBuilder来使用exe文件启动自己的Java应用程序已经完成了

但是好玩的地方并不在这个地方下面的小技巧可能更有趣将Jar文件打包进入exe文件!

假设利用上面的文件生成hellojar包

jar cvf hellojar hello\*class

然后将jar包附加到JBuilderexe后面去

copy /b \JBuilderexe+hellojar fooexe

在nfig(nfig)文件里面把前面加入的类路径去掉并加入下面的路径

addpath E:/jbuilder/bin/temp/fooexe

然后执行fooexe

看到了么?一个含jar包的exe文件被执行了!

这个过程的大致原理是exe文件的重要信息都在文件头部所以把乱七八糟的东西放exe文件尾部是不要紧的而jar/zip文件的重要信息是在文件尾部的这样它们两不相干能够容易的被执行

请注意读者如果使用这个功能得自己承担可能带来的风险因为Borland对这个功能不提供官方的支持!

               

上一篇:让Java程序只运行一个实例

下一篇:Java能够成为完美的技术平台吗?