社区
Java SE
帖子详情
怎样把.class文件做成.exe文件?
zhangzy2003
2003-08-23 11:09:59
各位高手,请帮忙指点我一下,除了JBuilder,有没有专业的软件把.class文件
做成.exe文件?????????
...全文
46
7
打赏
收藏
怎样把.class文件做成.exe文件?
各位高手,请帮忙指点我一下,除了JBuilder,有没有专业的软件把.class文件 做成.exe文件?????????
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
star821116
2003-08-23
打赏
举报
回复
转贴:
将Java应用程序本地编译为EXE的几种方法
1. 从www.towerj.com获得一个TowerJ编译器,该编译器可以将你的CLASS文件编译成EXE文件。
2. 利用微软的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]
3. Visual Cafe提供了一个能够创建EXE文件的本地编译器。你需要安装该光盘上提供的EXE组件。
4. 使用InstallAnywhere创建安装盘。
5. 使用IBM AlphaWorks提供的一个高性能Java编译器,该编译器可以从下面的地址获得:
http://www.alphaworks.ibm.com/tech/hpc
6. JET是一个优秀的Java语言本地编译器。该编译器可以从这个网站获得一个测试版本:
http://www.excelsior-usa.com/jet.html
7. Instantiations公司的JOVE
http://www.instantiations.com/jove/...ejovesystem.htm
JOVE公司合并了以前的SuperCede,一个优秀的本地编译器,现在SuperCede已经不复存在了。
8. JToEXE
Bravo Zulu Consulting, Inc开发的一款本地编译器,本来可以从该公司的网页上免费下载的,不过目前在该公司的主页上找不到了。
公司主页:http://www.bravozulu.com/
下面这个FTP上曾经有过这个软件,不知道现在是不是还在:
ftp://race.dlut.edu.cn/pub/java/tools/jet
9.jbuilder
这个是Borland不公开的使用技巧,能够通过JBuilder来制作exe文件来启动Java文件。
JBuilder并不支持本地编译机制。但是有一个隐藏的技巧可以让你从可执行文件来启动Java程序,可以出现或者不出现console窗口。想做到这些,需要JBuilder的bin目录下的这些文件:
JBuilder.exe
JBuilderW.exe (可选)
JBuilder.config
jdk.config
JavaLauncher.dll
“JBuilder.exe”是一个通用的可执行外壳文件,用以启动Java程序,”JBuilderW.exe“好像是javaw.exe一样,它把”JBuilder.exe”包装起来,但是运行时候不显示那个console的窗口。使用这些文件的关键是文件名。“JBuilder.exe”查找一个文件叫”JBuilder.config”的配置文件,里面包含了运行Java程序的必须信息。同样的”JBuilderW.exe”查找”JBuilder.exe”来启动不带Console窗口的Java程序。如果把JBuilder.exe重命名为”foo
.exe”,那”foo.exe”将去寻找”foo.config”配置文件,同样”JBuilderW.exe”被重命名为”fooW.exe”,它会去寻找”foo.exe”文件。
说到这里,聪明的读者应该猜到怎样利用JBuilder.exe来启动应用程序了。只要把JBuilder.exe,JBuilerW.exe,JBuilder.config改名成相应的文件名,在JBuilder.config里面指定主类和类路径,就能够通过执行JBuilder.exe(或者被改名后的exe文件)来启动Java应用程序了。下面是用本机为例。
Borland JBuilder 5被安装在E:\jbuilder5\目录下,在E:\jbuilder5\bin\下建立一个temp目录,然后把JBuilder.exe,JBuilder.config,JavaLauncher.dll,jdk.config四个文件拷贝到E:\jbuilder5\bin\temp\目录下,然后在这个目录下建立一个hello目录,在这个目录下生成一个hello.java文件,即E:\jbuilder5\bin\temp\hello\hello.java文件,
file://hello.java/
package hello;
public class hello{
public static void main(String s[]){
System.out.println("Hello, Exe file!");
}
}
编译成class文件,然后打开Jbuilder.config文件,作相应的修改:
在JBuilder.config里面找到下面两行
# Start JBuilder using the its main class
mainclass com.borland.jbuilder.JBuilder
修改为
# Start JBuilder using the its main class
mainclass hello.hello
addpath E:/jbuilder5/bin/temp/
addpath命令是把目录加入类路径中,这个命令和其它config里面可以识别的命令可以在JBuilder/bin目录下的config_readme.txt里面找到详细说明。
然后将jdk.config里面的javapath修改成相对的路径,例如原来是
javapath ../jdk1.3/bin/java
修改成
javapath ../../jdk1.3/bin/java
最后
将JBuilder.exe,JBuilder.config修改成所需要的文件名,例如foo.exe和foo.config文件。
现在执行foo.exe文件
至此,通过修改JBuilder来使用exe文件启动自己的Java应用程序已经完成了。
但是好玩的地方并不在这个地方,下面的小技巧可能更有趣,将Jar文件打包进入exe文件!
假设利用上面的文件,生成hello.jar包,
jar cvf hello.jar hello\*.class
然后将jar包附加到JBuilder.exe后面去,
copy /b ..\JBuilder.exe+hello.jar foo.exe
在foo.config(JBuilder.config)文件里面把前面加入的类路径去掉,并加入下面的路径:
addpath E:/jbuilder5/bin/temp/foo.exe
然后执行,foo.exe
看到了么?一个含jar包的exe文件被执行了!
这个过程的大致原理是:exe文件的重要信息都在文件头部,所以把乱七八糟的东西放exe文件尾部是不要紧的;而jar/zip文件的重要信息是在文件尾部的,这样它们两不相干,能够容易的被执行。
请注意:读者如果使用这个功能,得自己承担可能带来的风险,因为Borland对这个功能不提供官方的支持!
还可以去看看http://www-900.ibm.com/developerWor...ive/index.shtml这是一篇分析的文章,但它提供了很多有用的资料。
zhangzy2003
2003-08-23
打赏
举报
回复
我想做成.exe,速度会有所增加。因为目前这个程序是在windows上运行,做成.exe也各符合用户的习惯。
onefox
2003-08-23
打赏
举报
回复
做成 .exe 后也无法脱离 JVM 环境
wantvictory
2003-08-23
打赏
举报
回复
用jet测试的
wantvictory
2003-08-23
打赏
举报
回复
转换后的.exe不能跨平台
seaman0916
2003-08-23
打赏
举报
回复
我以前也在疯狂的找工具把.class 变成 .exe ,但现在我对这已没兴趣了,因为它本来就是跨平台没什么要.exe ? 既然要.exe 为什么要用 java ? 它的应用程序执行速度 比c++ ,c,vb,
....慢的多!
如果楼主非要.exe的话,推荐: JET 3.0 ! 很好的东东!
bromon
2003-08-23
打赏
举报
回复
1、做成一个可执行的jar,跟javaw关联
2、写一个bat文件或者是linux脚本来调。
java 的编译运行,以及.
class
、.java
文件
和javac.
exe
、java.
exe
的理解
以 HelloWorld 入门程序为例 程序开发步骤说明:编写、编译、运行 编译:将编写的java源
文件
翻译成JVM认识的
class
文件
,这个过程中,javac编译器会检查我们的程序是否有错误。 运行:将翻译之后的
class
文件
交给JVM去运行 .java
文件
->编译器->.
class
文件
->JVM运行 javac.
exe
:编译器 java.
exe
:解释器 编译源
文件
( .java) 在DOS命令行中,通过命令进入java源
文件
的目录,使用javac 源
将.
class
文件
打包成.jar
.
class
文件
打包成.jar
详解.
class
文件
详解.
class
文件
话不多说,直接上图 .
class
文件
理解: 在 Java 中,JVM 可以理解的代码就叫做字节码(即扩展名为 .
class
的
文件
),它不面向任何特定的处理器,只面向虚拟机。Java 语言通过字节码的方式,在一定程度上解决了传统解释型语言执行效率低的问题并且保留了解释型语言可移植的特点,而通过即时编译器(jit)又有编译型语言执行效率高的特点。所以 Java 程序运行时比较高效。Java通过字节码
文件
和虚拟机jvm之间的关系,做到了平台无关性,一次编译,各平台都可运行。
浅谈Java中的.java
文件
.
class
文件
今天想到一个问题为什么.
class
文件
中只有一个public修饰的类,之后查了很多资料,自己也做了不少测试,现在将所做的测试和结果和大家分享。 首先了解一下什么是.java
文件
,.
class
文件
类名.java
文件
是保存源代码的文本
文件
使用 javac 类名.java可以编译该
文件
,编译为二进制字节码
文件
类名.
class
使用 java 类名 可以运行该类 类名.
class
是用于保存 ...
.
class
文件
的生成及加载过程
.java
文件
和.
class
文件
.java
文件
: 用于保存源代码的文本
文件
(通俗的说:就是我们写的代码) .
class
文件
: 生成:使用javac命令可以编译该
文件
-----生成.
class
文件
加载过程:当运行Java程序是,首先运行JVM(Java虚拟机),然后再把
class
文件
加载到JVM的方法区里,然后在堆区创建一个java.lang.
Class
对象,用来封装类在方法区内的数据结构,并向程序员提供访问方法区内的数据结构的接口。 在加载
class
文件
的时候,JVM会先加载类中的所有静态成
Java SE
62,612
社区成员
307,332
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章