E81086713E446D36F62B2AA2A3502B5EB155

Java杂家

杂七杂八。。。一家之言

BlogJava 首页 新随笔 联系 聚合 管理
  141 Posts :: 1 Stories :: 174 Comments :: 0 Trackbacks
利用春节的闲暇,开发了一款Java转EXE文件的工具。
之前曾经用过一款开源的工具Jsmooth,发现生成的EXE文件通过改名还是可以看见class文件,这一点很不爽,所以自己做了一款,改进这个不足。特性列表:
1)生成EXE文件,安全发布你的Java程序,防止反编译
2)不用设置Classpath了,把依赖的jar包,安全的包含在生成的文件里。(All In One,:-)
3)支持程序的图标(Icon)文件设置,使用.ico文件。
4) 可选带控制台或不带控制台,并设置控制台的标题。

TODO Features:

1)增加Native Splash Screen
2)提供本地接口供Java程序使用,比如注册表访问,可以在Java代码里
使用PlatformAPI.readRegistryKey()本地方法,而PlatformAPI在生成的EXE里内置,并且不再需要另外的DLL文件.(我叫它:Mixing Java Class and JNI DLL files in EXE).
3)国际化,现在好多参数都只考虑ASCII.

下载:
Java2exe_0.0.1.zip
posted on 2007-02-25 16:11 DoubleH 阅读(4042) 评论(23)  编辑  收藏

Feedback

# re: Java转EXE文件工具 2007-02-25 18:31 azure
做的不错,我想问一下,如果用户机器上没有jre这个exe文件可以运行吗?  回复  更多评论
  

# re: Java转EXE文件工具 2007-02-25 18:48 喜来乐哈哈
确实不错,有空的时候能介绍一下原理吗?

如果能共享代码当然更好  回复  更多评论
  

# re: Java转EXE文件工具 2007-02-25 19:49 Javacap
@azure
没有JRE是不行的,可以考虑再嵌入一个JRE

@喜来乐哈哈
基本原理很简单,就是一个查找合适JRE然后启动合适的Java类。但是要做好就要看自己的发挥了。  回复  更多评论
  

# re: Java转EXE文件工具 2007-02-25 20:35 喜来乐哈哈
是用JNI的Invocation Interface吧?  回复  更多评论
  

# re: Java转EXE文件工具 2007-02-26 11:33 azure
不知道是什么原理来着,是用delphi写的吗?是否运行后将exe文件解压缩变成jar文件后再运行java命令?  回复  更多评论
  

# re: Java转EXE文件工具 2007-02-26 12:33 Javacap
@azure
Java写的,没有任何解压缩的过程。  回复  更多评论
  

# re: Java转EXE文件工具 2007-02-26 16:07 azure
我看到网上有篇资料说可以:
----------------------------
copy /b ..\JBuilder.exe+hello.jar foo.exe
在foo.config(JBuilder.config)文件里面把前面加入的类路 径去掉,并加入下面的路径:
addpath E:/jbuilder5/bin/temp/foo.exe
然后执行,foo.exe
看到一个含jar包的exe文件被执行了!
----------------------------
不知道是不是这个技巧来着,:)  回复  更多评论
  

# re: Java转EXE文件工具 2007-02-26 16:39 azure
猜想技巧应该是这样的,:):
1、用delphi或vc写一个起动器boot.exe,boot.exe将会和需要的jar包使用指定的icon打到一个exe文件中,使用命令:
copy /b ..\boot.exe+hello.jar Foo.exe

2、在生成的foo.exe文件里面使用第1步生成的命令:
“java -cp Foo.exe Mainclass”
来运行该exe文件。

疑问是第一步生成的命令(如:Mainclass)是怎么传递给第2步的,???
  回复  更多评论
  

# re: Java转EXE文件工具 2007-02-26 16:55 azure
想了一下,可能是将Mainclass和classpath信息写入到一个文件中保存起来了,运行的时候再从该文件中读取该信息。
第1步需要的所有jar都和包含了第2部需要运行的Mainclass和classpath信息的文件一起打到了一个jar包中。  回复  更多评论
  

# re: Java转EXE文件工具 2007-02-26 17:43 Javacap
azure同学,你猜的都不对哦,你说的方法实在是下下策!
  回复  更多评论
  

# re: Java转EXE文件工具 2007-02-27 00:39 azure
考虑了一下之后,觉得如下方法要简单一些:
1、用delphi或vc写一个起动器boot.exe,boot.exe为一个壳,它做的事情是执行命令:jar Foo.exe(假设Foo.exe该exe文件的自己名称)。
2、java2exe.exe工具为boot.exe和需要的jar包(假设名称为java2exe.jar)合成的一个exe文件,合成过程为:
copy /b ..\boot.exe+java2exe.jar java2exe.exe。
这个过程可以写一个程序来生成也可以直接在控制台运行。
3、java2exe.jar包为一个可以直接使用jar命令运行的包,其功能为:将classpath里面包含的所有jar包合成一个可以直接使用jar命令运行的jar包(假设为appjars.jar),然后调用命令:
copy /b ..\java2exe.exe+appjars.jar app.exe(即需要生成的exe文件名称) 。
4、当生成的app.exe运行时,会调用命令:jar app.exe,即jar app.jar。

大致可能是这样的,:)  回复  更多评论
  

# re: Java转EXE文件工具 2007-02-27 10:43 Javacap
呵呵,azure同学,这个程序虽然看上去似乎是纯 Java的其实不是,
C代码占70%,照你方法应该可以,但是有很多缺点。如何编译都是 C在做的。这个程序妙就妙在C,Java,JNI整合成一个有机体EXE程序。其实在Swing中显示Icon文件也是本地代码在做的
  回复  更多评论
  

# re: Java转EXE文件工具[未登录] 2007-02-28 13:32 quietywind
请问一下运行这个需要什么环境啊?
为什么我点击add后什么反应都没有呢?  回复  更多评论
  

# re: Java转EXE文件工具[未登录] 2007-03-02 21:34 Javacap
需要安装JRE1.3以上  回复  更多评论
  

# re: Java转EXE文件工具[未登录] 2007-03-06 14:43 quietywind
安装了啊,我做Java开发使用的JRE是1.5的  回复  更多评论
  

# re: Java转EXE文件工具 2007-05-27 13:19 TearCry
请问,我为什么用NetBeans5.5 生成的jar文件,用这个工具,主类我也选择正确了,可是编译时为什么生成失败啊?
出现java.lang.Exception
因为我的这个jar文件要调netbeans的swing布局扩展库,是不是这个原因?  回复  更多评论
  

# re: Java转EXE文件工具 2007-07-28 23:22 路过
都不好使啊!  回复  更多评论
  

# re: Java转EXE文件工具 2008-05-08 20:01 liyuejin
这个东西到底该怎么用呀?  回复  更多评论
  

# re: Java转EXE文件工具 2008-08-01 12:38 你好
请问,我的Main类启动需要args 参数,我如何设定呢?  回复  更多评论
  

# re: Java转EXE文件工具 2008-08-02 23:21
不知道怎么用啊  回复  更多评论
  

# re: Java转EXE文件工具 2009-02-28 16:27 333
解放中国!!!  回复  更多评论
  

# re: Java转EXE文件工具 2009-03-05 18:12 气愤
垃圾,根本没法用……  回复  更多评论
  

# re: Java转EXE文件工具 2009-03-31 16:51 爸爸
骗子,垃圾,改开源项目都不会改,hello world都显示不了  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: