java程序打包成exe:一键安装双击运行——Java脱离jre安装程序制作

article/2025/10/23 22:04:01

准备:

eclipse、exe4j(网上有软件和帐号下载)

第一步,将java项目打包成可执行jar文件,首先看一下我的java project结构,Main.java是程序入口类,里面有main函数,config目录是些配置文件,lib是用到的第三方类库

开始打包,Simulate(Java项目)-鼠标右键-Export

弹出窗口,选择“JAR file”,点击“Next”

取消勾选“config”和“lib”目录,以及eclipse生成的项目配置文件“.classpath”和“.project”,点击“Next”

一切默认,点击“Next”

在弹出窗口中,选择我们自己创建的MANIFEST.MF文件,点击“Finish”

我的MANIFEST.MF文件内容为:

Manifest-Version: 1.0
Main-Class: bing.Main
Class-Path: . lib/ojdbc14.jar lib/poi-2.5.1.jar lib/jbcl.jar lib/JTattoo.jar lib/liquidlnf.jar
Created-By: IceWee

通过指定“Main-Class”来达到可执行jar文件的目的。其实我们最终是将项目打包成exe,Class-Path可以不指定,在打包exe的时候还要指定classpath的。

第二步,将项目打包成exe,这里要明确一点,并不是把所有的文件都打包成一个exe,资源文件是不能包进去的,往下看↓

首先,在任意目录创建一个文件夹,最好命名和项目名相同,我在F盘创建了一个“Simulate”文件夹,之后将所有的资源文件以及我们生成的可执行jar文件(我的Simulate.jar)都拷贝到这个文件夹里,config目录和lib目录,如果你怕执行该程序的机器上没安装jre,那么你需要将自己机器上的jre目录也拷贝进来,我安装的jre5,最后的目录结构:

 


 

对于Java桌面应用来说,比较烦琐的就是安装部署问题,如:客户端是否安装有jre、jre版本、jre在哪里下载、如何用jre启动Java应用等等。不要说刚接触电脑的人,就算是比较熟悉电脑,如果没有接触过Java,面对一个Java应用,如何在Windows下启动它,估计都会折腾半天。所以这个是导致Java桌面应用被一些人所讨厌的最大原因,Java的优势是“一次编写,随处运行”,跨平台特性确实很好,但并不是每个人都需要跨平台,而且有时候JVM平台或版本问题也会造成“一次编写,到处测试”的尴尬。对于固定平台下的Java应用,最好的方式莫过于带着JRE,让用户轻松点击就能运行。下面我们来解决这样的问题。

  针对windows平台,主要方法是:先将JRE进行精简,再使用工具exe4j 来解决双击运行使用的问题,最后用Inno Setup打包成安装程序, 这样一来,我们的Java应用就和普通的windows应用程序一样了。

本文相关下载

本教程PDF格式文档
http://www.uushare.com/user/javapro/file/1418624
http://www.rayfile.com/files/7840998c-1824-11de-942b-0014221b798a/

本教程示例程序
http://www.uushare.com/user/javapro/file/1418316 
http://www.rayfile.com/files/3ee1f95c-1826-11de-bcfb-0019d11a795f/

exe4j 4.2 注册版
http://www.uushare.com/user/javapro/file/1418327
http://www.rayfile.com/files/c56bebba-1826-11de-9b55-0019d11a795f/

Inno Setup 汉化增强版 + ISTool汉化 + 反编译套装 + ISFD界面设计汉化
http://www.uushare.com/user/javapro/file/1418305
http://www.rayfile.com/files/95c91dd9-1826-11de-89b1-0019d11a795f/


一、精简JRE

  JRE6默认安装大小大约90M,而一般程序只有几M甚至几百K,带JRE运行,感觉非常不合理,分发与网络传输过程也会大受影响。关于JRE的精简参照下面几篇相关文章:

Java程序发布之jre篇
http://www.blogjava.net/gdws/archive/2006/12/25/89898.html

如何制作最小的RCP程序压缩包(包含JRE)
http://www.eclipseworld.org/bbs/read-cec-tid-5777.html

让Java程序带上精简的jre(附工具)
http://glemir.xplore.cn/archives/200

JRE极限精简探求手册[1]——精简一个Swing的即时战略游戏
http://www.voidcn.com/article/p-odqygtks-vz.html

Java应用——精简JRE体积的小工具
http://blog.csdn.net/cping1982/archive/2008/09/02/2865198.aspx

JVM rt.jar 精简工具图形外壳 0.1
http://www.blogjava.net/beansoft/archive/2008/12/19/247321.html

可以运行 RCP/Swing 的迷你JRE 6(3.75MB)
http://www.blogjava.net/beansoft/archive/2008/01/18/176353.html

可以运行SWT的精简版JRE 1.4.2_04, 压缩后仅1.3MB
http://www.blogjava.net/beansoft/archive/2007/03/07/102381.html

  总得来说JRE精简是一个比较复杂的工作,如果不清楚某部分的功能不要轻易进行删减,否则可能产生一些未知的错误。pack200压缩工具在对某些重新打包过的rt.jar文件压缩时会产生错误,如果使用的话一定要注意控制台的输出信息。

二、使用exe4j生成exe可执行文件

  下面是我的一个完整Java示例程序 —— TestProcessBar。可以看到示例程序已经附带了jre , 下面先使用exe4j给它制作一个exe可执行文件(即图中的TestProcessBar.exe),并指定我们自带的jre 。


 
以下是exe4j的启动界面,点击Next开始创建配置文件。
 

 


接着选择要创建的exe文件类型,在这里我们选择第一个,这样其实是为程序创建一个可以双击运行的启动器,可以保证程序仍具有跨平台的特性。如果选择第二个,可以把程序完全编译成exe文件,可以更好的保护你的程序不被反编译。



接下来设置程序的短文件名,源文件夹路径(可以使用exe4j工程文件的相对路径。这里我的exe4j文件保存在launcher目录下,所以使用的源路径为[..],即上一级目录),以及要生成的exe文件的存放目录,exe存放目录相对路径为源文件夹,这里我把它指定为当前源文件夹。



接下来,可以给我们即将生成的exe文件起一个名字,如我的“TestProcessBar.exe”,还可以给它指定一个ico类型的图标,其它按默认就可以了,如图:


 
这里我们还可以为要生成的exe文件附加一些信息



接下来的这一步,我们需要把程序中所用到的类路径添加上去。然后指定程序的启动类,其它如果没有必要的话,则按默认即可,点击+号添加类路径:


 
基本上我们所需要用到的jar文件都要添加上去,可以逐个添加上去,也可以添加整个文件夹或者使用系统环境变量,为了使程序能够随处运行,强列建议使用相对路径,并且不要使用环境变量。添加好类路径之后回到上一步去选择"Main Class"即可。



接下来先选择我们的程序所需要的jre版本, 然后便是选择我们自带的jre了,这一步不是必须,但是为了更好的分发程序,我们自带了jre, 所以有必要把我们自带的jre指定为首选的运行环境,如图选择Search sequence


 
默认情况下程序会去系统的注册表,环境变量及相关的目录查找jre,因为我们只需要自带的jre,所以这里我把默认的选项移除了(如果觉得有必要的话可以把默认的选项放在自带jre选项的后面,不删除),然后添加我们自己的jre所在的目录路径,点+号开始:


 
这里还是建议使用相对的目录路径:



指定jre所在的目录,如图:



最后我的jre目录路径就是这样的:.\jre


 
下面这一步启动画面,有兴趣的可以自已设置一下。



 
程序最终生成了这个执行文件: TestProcessBar.exe
现在使用它,已经可以正常利用我们自带的jre启动程序了,但是整个程序仍有近19M的大小。
这时候打个压缩包,已经可以进行发布了。但是为了更大的压缩,并制作更加方便易用的程序,下面我们使用Inno Setup进行压缩并制作一个安装包。




三、使用Inno Setup为程序制作打包安装程序

 

安装后启动脚本向导,如图所示: 
 




这里指定程序的启动文件,即刚才用exe4j创建的exe文件。然后将整个程序目录都包含进去就可以了(这里因为程序中有一些exe4j和inno setup的工程文件,故有所选择),接下来的基本上一直按下一步就可以了,其中要设置一下安装程序的输出目录,直到脚本向导完成







然后执行该脚本即可:



 

然后找到Inno Setup的输出目录,就可以看到编译输出后的安装包了,如下图:setup.exe
大小已经压到了6.38M。
 

利用这个就可以快速轻松的安装你的Java桌面应用了。
 



四、总结
  总体来讲,我们的目的是为了让我们编写出的程序更加的方便易用。通过以上的学习,现在我们已经可以制作出可双击运行、不用用户另装jre的、简单易用的程序安装包。大家可以对jre精简、exe启动器的制作、打包安装进行更深入的学习。本教程中的工具只是做一个抛砖引玉,还有很多类似功能的工具有待大家去研究,最后,希望大家能够制作出属于自己的简单明快的一键式Java程序。


http://chatgpt.dhexx.cn/article/JRduQnVT.shtml

相关文章

JRE的下载安装

一、JRE的下载地址:Java Downloads | Oracle 二、选择要下载的版本 三、第一次登录需要注册 四、注册并下载 五、按流程安装 双击打开安装包 更改安装位置(建议把C盘改成D盘) 选择下一步,等待安装完成 六、配置JRE的环境 …

jdk安装jre报错

java环境配置 今天准备来学习一下java, 在网上找了下资料了解到需要下载jdk和jre。 简单的看了下后提是说明不要单独安装jre, 安装jdk时会自动安装jre。 所以也没多想。以下是我的操作步骤。 获取jdk下载地址 https://www.oracle.com/java/technologi…

JDK、JRE实用安装教程

JDK与JRE的介绍 JDK(Java Development Kit)称为Java开发包或Java开发工具,是一个编写Java的Applet小程序和应用程序的程序开发环境。JDK是整个Java的核心,包括了Java运行环境(Java Runtime Environment)&am…

如何安装JRE8.0.202

1 引言 Java运行环境(Java Runtime Environment,简称JRE),在STM系列芯片开发中难免会用到STM32CubeMX软件,由于STM32CubeMX软件是基于Java环境运行的,所以需要安装JRE后才能使用。下面我们对JRE的安装进行详细的讲解。…

ubuntu16.04 安装jre

转:https://blog.csdn.net/nnuyi/article/details/78053188 1.why JRE? jre是运行java程序需要的环境,如果没有安装java,java程序没法正常运行。 2.安装jre (1)下载jre 进入java官网下载合适的jre版本:ht…

如何验证JDK和JRE安装成功

win R 输入 cmd 打开控制台 输入 java -version ! 表示安装成功 bin目录:Binary二进制 可执行程序目录(开发工具) db目录:Database主要存放和数据库相关的文件 include目录:存一些C程序头文件 jre目录: JD…

java环境配置(jdk、jre安装和环境配置)

以下为Windows系统。 一、.首先将‘此电脑’的快捷方式取消。 步骤:右键选择“个性化”——在选择“主题”——桌面图标设置——点击“计算机”(打对√)点确定 二、.安装jdk和jre 2.1 、jdk采用“傻瓜”安装法:一直点“下一步…

java安装jre_Java Runtime Environment怎么安装 JRE安装详细图文教程

Java Runtime Environment是运行java程序所必需的最小安装包,是java的核心运行环境。那么我们要怎么安装Java Runtime Environment,今天小编就为大家提供Java Runtime Environment安装教程。 软件名称:Java Runtime Environment(JRE7) V7 Upd…

Java (JDK和JRE安装)简单粗暴

1.Java下载过程 (急用)直接抵达:Java Archive | Oracle (懒人必备) 打开甲骨文Oracle官网: Oracle | Cloud Applications and Cloud Platform (点击) 选择一项你需要的版本号然后点…

【jdk、jre安装】

安装包准备 JDK官网下载:https://www.oracle.com/technetwork/java/javase/downloads/index.html 百度网盘:https://pan.baidu.com/s/1WZPZ5r9zWGzbYT6GUVutYQ 提取码:njdo 安装 双击安装包,点击下一步 更改安装路径为 D:\Java\…

linux查看 jre 安装目录

近期对接平安银行项目,要求放国密 jar包到jre目录,网上也找了一些命令,下面这个亲测有用,特此记录一下,我的系统版本是3.10.0-693.el7.x86_64 步骤 1.使用 which java 命令 2.使用ls -lrt 参数为上面返回的路径 3…

java jre安装_JRE安装与配置图文教程

前面我们学习了JDK、JVM以及JRE的基本知识和三者之间的关系,肯定也知道JDK是包含JRE的,在下载体积方面,JDK要比JRE大好几倍。那么JRE安装与配置要怎么操作可以实现呢,今天这篇文章就介绍JRE安装与配置的图文教程,还没有…

Windows系统——JRE安装

1.Windows系统——JRE安装 JRE是java的运行环境。 面向java的使用者,而不是开发者。 JRE是运行java程序所必须环境的集合,包含JVM标准实现及java核心类库。它包含java虚拟机,java平台核心类和支持文件,它不包含开发工具&#xff0…

JRE下载安装教程

JRE下载安装教程 JRE全名:Java Runtime Environment (Java 运行环境),java程序需要在此环境上运行 一、 下载 1. 官网链接 (1) 点击链接进入到官网页面 (2) 往下滑动依次点击“JRE”、“Windows” 这里就直接以64位电脑举例了,如果是32位的就…

jre 安装与配置环境(windows系统)

目录标题 一. jre下载1.找到目标文件,点击下载2.打勾,下载 二. jre 安装1.双击打开2.点击【安装】3.点击【下一步】4.安装中.......5.安装完成,点击【关闭】 三. jre 环境配置1. 打开设置,快捷键 win i2.点击【高级系统设置】3.点…

el-from中的el-input去除边框和阴影

效果图 方法一: .el-input--mini .el-input__inner {border: 0;border-radius: 0px;box-shadow: none;&:focus {border-bottom: 1px solid #409eff;}}方法二: .input-button ::v-deep {.el-input__inner {border: 0;border-radius: 0px;&:focus {border-bottom: 1px…

element-ui el-input 删除边框

我们在使用element ui的 el-input输入框时,会面临这样的问题: 官网的样式: 而我们需要的: 我们正常的操作是:但发现行不通… style"border: 0px;"然后经过查找资料,发现可以用” >>>…

去除input边框

https://blog.csdn.net/sunrainamazing/article/details/71751043 去除input的边框仅仅用border属性 ,其实是不能满足我们的需求的 此外还需要加上outline属性才可以 实现我们想要的样式 ** 去除边框的代码 border-width:0; 即可去除相应的周围的边框 但是实际&a…

去掉input聚焦时的边框

<html><body><input placeholder"请输入"/></body> </html>border:none效果 <html><head><style>input{border:none;}</style></head><body><input placeholder"请输入"/></…

input标签去除边框和阴影框并且用户无法修改

问题 可以看到当我单击这个input框时&#xff0c;浏览器就会生成这个阴影非常影响用户体验&#xff01; 首先input标签去掉边框 border: none;然后用户无法修改内容并且只能复制使用以下标签&#xff1a; readonly"readonly"最后就出现了上述问题&#xff0c;其实…