文章目录
- 一、文件准备
- 二、exe4j 下载
- 三、exe4j 安装
- 四、使用 exe4j 生成 jre + jar 可执行文件
- 五、博客资源
使用 exe4j 生成 jre + jar 可执行文件的本质就是在外面包裹了一层 C/C++ 程序 , 在该程序中 , 执行 system 系统调用 , 调用 jre 目录下的 java 命令 , 执行 jar 文件 , 也可以自己实现 ;
参考 【C 语言】System 系统调用 ( Windows ) 代码 :
#include <stdlib.h>
int main()
{
system("notepad");
}
上述代码相当于在 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
配置完之后 , 点击右侧 " + " 按钮 , 选择 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>
五、博客资源
博客资源地址 : https://download.csdn.net/download/han1202012/16781095
资源内容 :
- exe4j 工具
- exe4j_work 工作目录所有文件