几种 jar 转 exe 的方法
目录
几种 jar 转 exe 的方法
exe4j
感受:最后生成的是一个文件夹,其中有jre,jar,exe,exe文件不能离开这个文件夹否则无法使用。
原理:应该是告诉电脑jar在哪,jvm在哪。
Inno Setup
参考文章:同上。
感受:就是把exe4j生成的文件夹做了一个安装包,然后通过这个安装包安装,感觉挺好玩,但是不现实,一个安装包中有jre,所以很大。
jsmooth
感受:可以生成独立的exe文件,但是无法在没有jre的机器上运行,文中所说的捆绑jvm也没有实现。
原理:琢磨着像,把jar打进exe,同时告诉电脑jvm在哪。
GreenJVMMake
感受:通过上面可以知道jar转成exe的大小和jre直接相关,所以想到了精简jre大小,自己琢磨了半天发现基本上有用的九个rt.jar,所以准备精简rt.jar,使用这个软件可以做到,做到之后结合exe4j会报错,该文给出的方案和exe4j + Inno Setup相似,但是到了这一步:
没办法,我们制作一个完整调用pack类库的小程序,而后以此生成仅有依赖库的rt.jar,合并打包进自定义的rt.jar中,再次运行程序。OK,通过了。
不知道pack类库是个什么,所以也没法进行下去。
原理:精简jre,然后将jre和jar,以及可以告诉电脑jar和jvm在哪的一个exe放一起
Java应用定制工厂
使用体验:软件八年没更新了,根本运行不了!
感受:比上面的GreenJVMMake好用很多
功能有:精简jre、将精简的jre和jar生成exe
其中精简有两种模式,一是仅仅包含运行时用到的类,这种精简后jre很小;另一种是包含运行时用到的类和其依赖的所有类,这种精简后jre稍大,但是出错少。
原理:将jre精简,然后将jre、jar放到一个文件夹,生成exe,告诉电脑jar和jvm在哪,exe也是不能脱离这个文件夹。
JarToExe
使用体验:生成exe后运行不了,提示"Java运行环境未找到"。
使用案例:
- 演示一:如何用 Java 开发并生成一个 控制台程序?
- 演示二:如何用 Java 开发并生成一个 Windows 窗口程序?
- 演示三:如何用 Java 开发服务并作为 Windows NT 服务运行?
- 演示四:支持“暂停/继续”的 Windows NT 服务运行?
- 演示五:系统任务栏图标和系统日志
Jar2Exe 界面使用说明
第一步:选择 JAR 文件
- 请输入 JAR 文件或者 classes 目录:输入 jar 文件的全路径或者输入包含 .class 文件的 classes 目录。
- 浏览 JAR ...:弹出打开文件对话框,浏览 jar 文件。
- 选择目录 ...:弹出目录选择对话框,选择 classes 目录。
- 运行时提示用户最低要求的 JRE 版本:生成的 exe 文件运行时,如果 JRE 环境低于这个版本,则会显示版本太低的提示。
第二步:选择程序类型
- 控制台程序:生成的 exe 文件运行时控制台是可见的,适合用来运行需要控制台输出的程序。
- Windows 窗口程序:生成的 exe 文件运行时控制台不可见,适合用来运行显示窗口的程序。
- Windows NT 服务:生成的 exe 可以作为 Windows NT 服务程序运行,系统启动时,不登录用户就可以后台启动服务。软件未注册时,试用期生成的 Windows NT 服务程序会不定期自动停止服务,仅作为演示之用。
第三步:设定主启动类
- 请输入开始运行的主启动类:带有 main() 方法的 java 类全名,比如 test.Hello 。点击 "选择..." 按钮可以通过树结构选择。
- 选择...:弹出类选择对话框,采用树结构选择主启动类。
- 请输入 Windows NT 服务名:如果在前一页选择 "Windows NT 服务" 类型,则本配置项将出现。输入唯一标识本服务的服务名。可点击 "设定" 按钮,设定其他服务参数。
- 设定:设定服务的详细参数。
- 服务描述:Windows NT 4.0 不支持服务描述,因此如果服务安装在 Windows NT 4.0 上,服务描述将被忽略。
- 依赖的服务:通过 "/" 分隔依赖的服务的服务名。
第四步:设定选项
- 启用任务栏图标:启用生成的 exe 提供的任务栏图标功能。如果可执行文件类型为 Windows 服务,则此功能不可用。转到 技术支持页 下载开发接口。
- 启用记录系统日志:启用生成的 exe 提供的记录系统日志功能。转到 技术支持页 下载开发接口。
- 隐藏 class 文件:使生成的 exe 不可以通过解压获取被保护的 class 文件。
- 加密并隐藏 class 文件:使用更复杂的算法对 class 进行隐藏保护。
第五步:设定依赖的其他 jar
- 添加所依赖的其他 jar 文件:生成的 exe 可以将依赖的其他 jar 文件一同包含在 exe 文件中。
- 添加...:弹出打开文件对话框,选择 jar 文件。
- 保护:如果前一页选择了 "隐藏" 或者 "加密并隐藏" ,则保护按钮将可用。选择 "保护" 后的 jar 文件,将同主 class 文件一样被隐藏保护。
- 删除:删除列表框中选定的 jar 文件。
- 设定 classes 目录过滤:如果在第一页选择的是一个目录用来生成 exe ,则此 "过滤" 功能将显示。
用来与通配符匹配的文件名是基于 classes 目录的相对路径。能够与输入框中设定的通配符匹配的文件,将不被包含到生成的 exe 中。多个通配符使用半角逗号分隔。
通配符规则:
** - 任意层次的目录和文件
* - 不能跨层次的任意目录名或文件名(即不包含 "\" 和 "/" )
? - 任意单个目录名或者文件名字符(即不包含 "\" 和 "/" )
比如:
*.bak - 将过滤掉 classes 根目录下扩展名为 bak 的文件。
**\*.bak - 将过滤掉所有目录下扩展名为 bak 的文件。
**\CVS\* - 将过滤掉所有目录下的 CVS 目录内的文件,但不包含 CVS 下的子目录内的文件。
test\** - 将过滤掉 test 目录下所有目录层次的文件。
第六步:选择生成的 exe 文件名
- 请输入要生成的 exe 文件名:输入将生成的 exe 全路径文件名。
- 浏览...:弹出文件对话框,选定要生成的 exe 文件名。
- 图标及版本:弹出修改生成的 exe 的程序图标及版本信息的对话框。
- 生成的 exe 不允许被修改:如果选定,生成的 exe 将不允许被再修改。如果未选定,生成的 exe 可以用其他工具进行修改资源,再次加密等。
2016-04-22
本文来自博客园,作者:白乾涛,转载请注明原文链接:https://www.cnblogs.com/baiqiantao/p/5422917.html