IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> exe4j 打包 jar 文件为 exe 文件 -> 正文阅读

[Java知识库]exe4j 打包 jar 文件为 exe 文件

1、资源分享

exe4j 下载:
https://pan.baidu.com/s/1wN50LGxClyZuOR9XZoDVGQ????????提取码:luck
java 部分版本下载:
https://pan.baidu.com/s/1q4PHkKUlSxk4LRU4DCopLg???????????提取码:luck

2、把项目打包成 exe 文件

2.1 把项目打包成 jar 包(用 fatjar 打包项目)

要打包的项目:
项目目录

(1) 把 net.sf.fjep.fatjar_0.0.32.jar 包放入 eclipse\plugins 目录下

把 net.sf.fjep.fatjar_0.0.32.jar 包放入 eclipse\plugins 目录下

(2) 完成第一步后,在 eclipse 中对项目使用右键会新增红色框框框起来的功能

在这里插入图片描述

(3) 点击 Build Fat Jar 后的界面

Build Fat Jar 后的界面

(4) 点击 next

Build Fat Jar 第二步
确认无误后点击 finish 弹出下面窗口点 ok ,项目打包成 jar 包完成。
打包 jar 成功

(5) 打包后的效果

打包后的效果截图

2.2 把 jar 包制作成可执行文件

(1) 运行 exe4j

运行 exe4j

(2) Welcome 直接点 next ,Project type 选中第二个 “JAR IN EXE” mode ,然后点 next

使用 exe4j 第二步

(3) Application info

使用 exe4j 第三步

(4) Executable info

示例的程序是有可视化界面的,所以选 GUI 程序
使用 exe4j 第四步
此处通过点 next 是到不了下图的,需要手动点击左侧栏。
使用 exe4j 第四步
同理,此处通过点 next 是到不了下图的,需要手动点击左侧栏
使用 exe4j 第四步

(5) Java invocation

使用 exe4j 第五步
使用 exe4j 第五步
点击 next
使用 exe4j 第五步

(6) JRE

使用 exe4j 第六步
如果想使代码在别的没有安装 Java 环境的电脑上运行:保持上截图中的 Advanced Options 不变,然后点击左侧栏中的 Search sequence。如果只是单纯的在本机中运行的话,可以跳过下面三张截图,直接 next 。
使用 exe4j 第六步
使用 exe4j 第六步
使用 exe4j 第六步

(7) 一直点 next

使用 exe4j 第七步
这时候报错:
使用 exe4j 第七步
分析:

截图开始
使用 exe4j 第七步
使用 exe4j 第七步
使用 exe4j 第七步
截图结束

我把三个默认配置全部删除后,又没在 exe 文件的同级目录下添加 java 运行环境 jdk 或 jre,所以只要添加进来就好了。

解决:
使用 exe4j 第七步
发给别人时,只需把含 exe 文件的文件夹发给别人,别人也可以在无 java 的环境下运行该程序。
使用 exe4j 第七步

3、遇到的问题

1、双击 exe4j 后,启动 exe4j 报错

No JVM could be found on your system. Please define EXE4J_JAVA_HOME to point to an installed 64-bit JDK or JRE or download a JRE from www.java.com.

启动 exe4j 报错
解决1:
配置 JAVA_HOME 且 JAVA_HOME 为 jre 的目录不是 jdk 的目录。
JAVA_HOME
初次配置 JAVA_HOME 的还需为系统变量中的 Path 变量添加一行。
在这里插入图片描述

注意:1、从 jdk-11 开始不再生成 jre 文件夹,不需要再添加 jre 文件夹的位置;
2、 jdk1.7 或者 jdk1.8 安装后,会自动在系统中注册一些东西,所以就算换了路径(更改环境变量中的 JAVA_HOME 的路径),在 cmd 窗口中输入命令 java -version 显示的还是原来的 jdk1.7 或者 jdk1.8 版本。
参考的:解决方法

2、运行时报错

2.1 忘记勾选 Generate 64-bit executable 产生的报错
The JAVA_HOME environment variable does not point to a working 32-bit JDK or JRE.

在这里插入图片描述
解决2.1:
回顾参考的流程,发现 4.Executable info 中的 32-bit or 64-bit 界面内的 Generate 64-bit executable 忘记勾选了
在这里插入图片描述

2.2 exe4j 使用的 java 版本太低,项目本身运行时的 java 版本太高产生的报错
java.lang.UnsupportedClassVersionError: compilationPrinciple/MainClass has been compiled by a more recent version of the Java Runtime (class file version 59.0), this version of the Java Runtime only recognizes class file versions up to 52.0
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(Unknown Source)
	at java.security.SecureClassLoader.defineClass(Unknown Source)
	at java.net.URLClassLoader.defineClass(Unknown Source)
	at java.net.URLClassLoader.access$100(Unknown Source)
	at java.net.URLClassLoader$1.run(Unknown Source)
	at java.net.URLClassLoader$1.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at com.exe4j.runtime.LauncherEngine.launch(LauncherEngine.java:81)
	at com.exe4j.runtime.WinLauncher.main(WinLauncher.java:94)

在这里插入图片描述
先看两张截图:
在这里插入图片描述
在这里插入图片描述
解决2.2:
方案一:删除 exe4j 中的三个默认配置文件,重新添加 jdk 路径,并且拷贝一份与配置同名的 jdk 跟 exe 文件放在一起。
在这里插入图片描述
方案二:新建 Java Project 项目,并且修改项目依赖的 jdk 环境,然后重新打包一份 jar 包,最后再用 exe4j 将新打包好的 jar 制作成 exe 文件。
在这里插入图片描述

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-04-01 23:11:18  更:2022-04-01 23:11:35 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 7:08:27-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码