【IntelliJ IDEA】使用 exe4j 生成 jre jar 可执行文件并在 Windo...
文章目录
- 一、文件准备
- 二、exe4j 下载
- 三、exe4j 安装
- 四、使用 exe4j 生成 jre + jar 可执行文件
- 五、博客资源
使用 exe4j 生成 jre + jar 可执行文件的本质就是在外面包裹了一层 C/C++ 程序 , 在该程序中 , 执行 system 系统调用 , 调用 jre 目录下的 java 命令 , 执行 jar 文件 , 也可以自己实现 ;
参考 【C 语言】System 系统调用 ( Windows ) 代码 :
#include <stdlib.h> int main() { system('notepad'); }
- 1
- 2
- 3
- 4
- 5
- 6
- 1
- 2
- 3
- 4
- 5
- 6
上述代码相当于在 DOS 命令行窗口中 , 执行了 notepad
命令 , 打开了记事本 ;
本篇博客介绍使用 exe4j 生成 Windows 上自带 JRE 的可执行文件 ;
前置博客 【IntelliJ IDEA】导出可执行 JAR 包 , 将该博客中生成的 jar 包与 jre 进行打包 , 并执行 ;
一、文件准备
将 【IntelliJ IDEA】导出可执行 JAR 包 , 将该博客中生成的 jar 包拷贝到一个单独的工作目录中 , 这里拷贝到 D:\exe4j_work 目录中 ;
找个 JDK 安装目录 , 将其中的 jre 目录拷贝到 D:\exe4j_work 目录 , 用于之后的打包 , jdk 1.8 的 jre 有 200 MB 左右 ;
二、exe4j 下载
到 https://exe4j.apponic.com/ 下载 exe4j 工具 ;
下载页面 https://exe4j.apponic.com/download/ , 下载 64 位即可 ;
下载完成 !
三、exe4j 安装
安装 exe4j 工具 , 运行 exe4j_windows-x64_6_0_1.exe 安装文件 ,
同意许可协议 ,
选择安装目录 ,
等待安装完成 ,
安装完成 , 运行 !
四、使用 exe4j 生成 jre + jar 可执行文件
运行后的欢迎页 ' 1. Welcom ' , 不进行任何操作 , 选择 ' Next ' 按钮 ,
' 2. Project type ' 选项中 , 选择 ' JAR in EXE ' mode 模式 , 继续 Next ,
' Short name of your application ' 选项设置的是打包后应用的别名 , 随便输入个字符串即可 ;
' Output directory ' 设置的是输出路径 ,
设置完后 , 继续后续设置 ,
生成的程序类型 ' Executable type ' , 如果只是 Java 命令行程序 , 选择 Console application ,
如果是 Java Swing 程序 , 选择 GUI application ,
' Executable name ' 是生成的可执行文件名称 , 这里任意输入一个字符串即可 ,
' Icon File ' 在文件系统中选择一个 ' .ico ' 格式的图标文件 ,
ico 格式图标到 http://www.ico51.cn/ 网站生成 ,
点击左侧的 ' 32-bit or 64-bit ' 选项卡 , 选择生成 64 位可执行文件 , 勾选下面的单选框 ,
然后进入到 ' 5. Java invocation ' 设置选项卡 , 指定 Java 虚拟机参数 ,
-Dfile.encoding=utf-8
1
1
配置完之后 , 点击右侧 ' + ' 按钮 , 选择 jar 文件 , 点击 ' OK ' 设置该 jar 文件路径 ,
选择主函数所在类 , 点击 ' Main class from ' 右侧的 ' … ' 按钮进行设置 , 在弹出的 ' Select Main Class ' 对话框中选择主函数类 ,
该步骤配置完之后的对话框如下 , 点击 ' Next ' 按钮 , 继续配置 ,
' 6. JRE ' 选项中设置最低 JDK 版本 1.8 , 在 ' Allow JREs with a beta version number ' 前勾选上 ,
这里特别注意 , IntelliJ IDEA 使用的是 1.8 版本编译的 jar 包 , 这里必须设置最低版本 1.8 ;
在 ' Search sequence ' 中的 JRE 查找路径 , 全部删除 , 如果其它电脑的环境变量 , 配置路径不一样 , 会出错 ,
点击 ' + ' 按钮 , 添加 jre 目录 , 注意要使用相对目录 ,
设置完 jre 之后 , 点击 ' Next ' , 继续设置 ,
' Perferred VM ' 中选择第 2 2 2 项 , ' Client hostpot VM ' , 然后点击 ' Next ' 继续 ,
' Next ' 继续 ,
' Next ' 继续 ,
选择 ' Click Here to Start the Application ' , 即可启动应用 ;
启动时会弹出 , 点击确定 ;
执行完毕 , 成功打印出 ' Hello World '
一定要注意 jre 版本 , IntelliJ IDEA 使用的 1.8 版本编译的 jar 文件 , 在 exe4j 中必须设置 1.8 作为最低版本 , 在工作目录拷贝的 jre 也必须是 1.8 版本的 ;
否则会报如下错误 :
java.lang.UnsupportedClassVersionError: Main : Unsupported major.minor version 52.0 at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631) at java.lang.ClassLoader.defineClass(ClassLoader.java:615) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) at java.net.URLClassLoader.defineClass(URLClassLoader.java:283) at java.net.URLClassLoader.access$000(URLClassLoader.java:58) at java.net.URLClassLoader$1.run(URLClassLoader.java:197) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) at com.exe4j.runtime.LauncherEngine.launch(LauncherEngine.java:81) at com.exe4j.runtime.WinLauncher.main(WinLauncher.java:94) A:\Program Files\exe4j\bin>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
五、博客资源
博客资源地址 : https://download.csdn.net/download/han1202012/16781095
资源内容 :
- exe4j 工具
- exe4j_work 工作目录所有文件