使用 exe4j 生成 jre + jar 可执行文件的本质就是在外面包裹了一层 C/C++ 程序 , 在该程序中 , 执行 system 系统调用 , 调用 jre 目录下的 java 命令 , 执行 jar 文件 , 也可以自己实现 ; 参考 【C 语言】System 系统调用 ( Windows ) 代码 : #include <stdlib.h>
int main()
{
system('notepad');
}
上述代码相当于在 DOS 命令行窗口中 , 执行了 本篇博客介绍使用 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./ 下载 exe4j 工具 ; 下载页面 https://exe4j./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./ 网站生成 , 点击左侧的 ' 32-bit or 64-bit ' 选项卡 , 选择生成 64 位可执行文件 , 勾选下面的单选框 , 然后进入到 ' 5. Java invocation ' 设置选项卡 , 指定 Java 虚拟机参数 ,
配置完之后 , 点击右侧 ' + ' 按钮 , 选择 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 ' 继续 ,
选择 ' 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 资源内容 :
|
|