分享

【IntelliJ IDEA】使用 exe4j 生成 jre jar 可执行文件并在 Windo...

 牛人的尾巴 2021-04-22


使用 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./ 下载 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 虚拟机参数 ,

-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 工作目录所有文件

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多