什么是网络协议?网络协议指的是计算机网络中互相通信的对等实体之间交换信息时所必须遵守的规则的集合,是网络上所有设备(网络服务器、计算机及交换机、路由器、防火墙等)之间通......
如何利用exe4j将可执行jar文件转换为exe文件(无需安装JVM)
使用java较多的人,经常会将自己编写的实用功能打包为可执行的jar文件,以后双击该文件就能直接运行程序,这样就不需每次打开编辑器运行程序,方便快捷了很多。但是,jar文件的运行依赖于java运行环境,不用java的人的电脑上几乎不可能会安装java运行环境。若想将这些小程序分享给他们使用,那该怎们办?难道让他们下载安装JDK、配置环境变量等一系列操作?其实不用这么麻烦,直接利用exe4j将可执行jar文件转换为exe文件并附带上jre目录,windows系统下就可以直接双击运行了。
exe4j将jar转exe的详细步骤
1、打开软件,直接点击Next.
2、选择“JAR in EXE mode”,点击Next.
3、在General——Short name of your application处输入应用程序的名字(随便输入即可),在Directories——Output directory框中选择或输入生成exe的输出路径,然后Next.
4、在Excutable name中输入将要生成的exe的名称,Icon File是应用程序显示图标,可选可不选。此处选择了一个ico图标,点击Next.
5、配置Class path,添加jar文件。点击+号弹出配置框,此时默认选择的是“Archive”,在Archive处选择要进行转换的jar文件,点击“OK”添加。
6、继续配置Class path,添加运行环境。点击+号弹出配置框,切换至“Environment variable”,在“Environment variable name”处填写“JAVA_HOME”即可。此步指定java运行环境,非常重要。若不指定运行环境,最后生成的exe就会报错缺少运行环境,打不开。设置完成后点击next
7、General —— Main Class选择主类(jar文件的主类,个人习惯将主类命名中带上_app后缀,便于区分),点击next
8、Java Version —— Minimum version(低版本必须填写),Maximum version(高版本可以为空),如果高低版本都填写,注意高版本的值必须大于低版本的值。然后勾选Allow JREs with a beta version number以及Only allow JDKs and no JREs(本次未勾选后一项也正常运行)。到这一步后可直接finish,开始转换为exe文件。
9、转换完成后弹出对话框,可以点击“Click Here to Start the Application”按钮测试生成的exe文件,也可以直接到输出路径下找到文件进行测试。
10、如果双击exe文件报错,提示环境变量未指向32位的jdk,那么需要检查环境变量中是否设置了正确的JAVA_HOME。如果JAVA_HOME中指向的是64位的jdk,则需要在exe4j的第4步中的“32bit or 64bit”处勾选64即可,这样生成的exe就能够正常使用了。
小结:上述方法确实能够生成能正常运行的exe文件,但是仍然需要JVM,和jar包并无区别,只是相当于在jar的基础上再进行了一次封装,隐藏了代码而已。打包成exe的真实目的应该是脱离JVM直接运行。
11、将jre目录添加到exe文件中。如果想保证发布的程序能够在没有安装JRE的机器上面运行,就需要连JRE安装目录一起发布到其他机器上。在exe4j的第6步中“JRE”——“Search sequence”中设置exe程序与jre的相对目录,比如此处在最后设置的.\jre8,将该项放最后,表示需要将exe程序与jre8放在同一目录下,程序运行时会按顺序从这些文件夹中寻找java.exe,找到后就正常运行,如果一直没找到就会报错。只要在最后设置了.\jre8,不管用户的电脑上是否安装了JRE,只要将该jre8目录放在与exe同一目录下,程序就能正常运行。此法非常高效,建议以后所有要发布的exe程序都按照该方法进行处理:设置.jre目录后导出exe,将exe与JRE目录一起压缩后发布。
小结:关于第11步,如何让用户不安装JVM的情况下运行转换后的exe文件,网上找了很多教程,都很麻烦,有的说不行,有的说安装一个JDK,最常见的解决办法就是用Inno Setup将简化版的JRE封装到setup中,然后再安装后运行……都很不高效。而11步中,直接将自己机器上安装的JRE目录同exe文件一起压缩后分享,用户解压就可以直接使用了,非常便捷。原JRE目录有160多M,压缩后也就40M左右。此法类似绿色软件,更方便的是,JRE目录放一个在那里就够了,本人以后发布的任何小程序,用户放在与JRE同目录下就可以直接双击运行了。
平时会写一些小程序来处理一些繁琐工作或实现一些实用功能,以后会陆续分享出来。此处先分享JRE目录的压缩包,其中包含自己编写的一个复制文件夹目录结构的小程序,感兴趣的朋友可以下载后自行测试。
标签: jar文件转换为exe文件
相关文章
- 详细阅读
-
区块链核心技术体系架构的网络层主要包括什么详细阅读
区块链核心技术体系架构的网络层主要包括:A、网络管理B、P2P网络C、HTD、发现节点E、心跳服务网络管理网络管理包括对硬件、软件和人力的使用、综合与协调,以便对网络资源进行监视......
2022-04-28 328 区块链核心技术
-
软件调试的目的是什么详细阅读
软件调试的目的是:改正错误。软件调试的概念软件调试是泛指重现软件缺陷问题,定位和查找问题根源,最终解决问题的过程。软件调试通常有如下两种不同的定义:定义1:软件调试是为了......
2022-04-28 359 软件调试
- 详细阅读
- 详细阅读