小白也会Java软件打包EXE(直接生成一个exe安装文件)

前言:Java软件程序以其跨平台的特性被广泛使用于各类操作系统中,目前有部分需求是需要将Java程序打包成EXE可执行文件,可以实现在任意一台Windows系统下安装使用,而不需要冗余的资源文件,只要一个简单的exe安装文件即可安装使用。

实现以上需求,四步法:
1、Java应用程序的编写(控制台、GUI均可)
2、使用IDE将Java应用程序导出可执行.jar文件
3、使用exe4j工具将 .jar文件打包为可执行的.exe文件
4、使用Inno Setup工具将可执行的.exe文件以及资源文件打包压缩为可安装.exe文件

  • 本文使用的所有工具下载均可访问本人github进行下载(exe4j、Inno Setup、jar运行环境(32位))

本文实现第一步骤:Java应用程序的编写(控制台、GUI均可)(这里以GUI程序为例)

本文使用的测试环境:jdk1.8.0_171,IDE环境为Eclipse IDE for Java Developers

实现一个简单Java GUI应用程序

1、新建工程

打开Eclipse,在左侧的资源管理一栏,鼠标右击弹->new->Java Project,填写项目名称(经典的HelloWorld),直接Finish。

小白也会Java软件打包EXE(直接生成一个exe安装文件)_第1张图片 小白也会Java软件打包EXE(直接生成一个exe安装文件)_第2张图片

项目建立完成,将图片、库资源拷贝到相应的位置,以备后用(目录与树如下)

小白也会Java软件打包EXE(直接生成一个exe安装文件)_第3张图片 小白也会Java软件打包EXE(直接生成一个exe安装文件)_第4张图片

2、代码编写

HelloWorld.java
package dainelcw;

import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.Image;
import java.awt.Toolkit;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import org.jb2011.lnf.beautyeye.BeautyEyeLNFHelper;

public class HelloWorld extends JFrame{
	
	public HelloWorld(){
		setTitle("HelloWorld");
		setSize(500, 400);
		//设置程序的显示位置
		setLocation(getCenterLocation(1), getCenterLocation(2));
	}
	
	public static void main(String args[]) {
		try{
			//风格设置
			BeautyEyeLNFHelper.launchBeautyEyeLNF();
			HelloWorld frame = new HelloWorld() ;
			UIManager.put("RootPane.setupButtonVisible", false);
			SwingUtilities.updateComponentTreeUI(frame);
			
			//图标
			Toolkit tk=Toolkit.getDefaultToolkit();
			Image image=tk.createImage(System.getProperty("user.dir")+"\\image\\icon.png"); 
			frame.setIconImage(image);
			//背景
			ImageIcon img=new ImageIcon(System.getProperty("user.dir")+"\\image\\bg1.jpg");//设置的图片路径	
			img.setImage(img.getImage().getScaledInstance(frame.getWidth(), frame.getHeight(),Image.SCALE_DEFAULT ));
			//将背景图片放在标签里
			JLabel imgLabel=new JLabel(img);
			//将背景标签添加到jfram的LayeredPane面板里。
			frame.getLayeredPane().add(imgLabel, new Integer(Integer.MIN_VALUE));
			//设置背景标签的位置 
			imgLabel.setBounds(0,0,img.getIconWidth(), img.getIconHeight());
			JPanel jp = (JPanel)frame.getContentPane();
			jp.setOpaque(false);
			
			JLabel label = new JLabel("HelloWorld");
			label.setFont(new Font("宋体", Font.BOLD, 30));
			frame.setLayout(new FlowLayout());
			frame.add(label);
			
			//显示
			frame.setVisible(true);
		}catch(Exception e){
			JOptionPane.showMessageDialog(null, e);
		}
	}
	//获取屏幕的大小并得到中心位置
	public int getCenterLocation(int type) {
		double width = Toolkit.getDefaultToolkit().getScreenSize().getWidth();
		double height = Toolkit.getDefaultToolkit().getScreenSize().getHeight();
		if(type == 1) {
			return (int) (width - this.getWidth()) / 2;
		}else {
			return (int) (height - this.getHeight()) / 2;
		}
	} 
}

3、运行

右击项目->Run As->Java Application(这里增加了一个主题库[MAC风格])

小白也会Java软件打包EXE(直接生成一个exe安装文件)_第5张图片

通过以上步骤你就可以编写一个简单的Java GUI应用程序啦!下一步就是生成JAR文件。

导出可运行JAR文件

1、导出jar

右击项目->Export->Runnable JAR File(生成过程若有警告提示[直接忽略],直接ok即可)
HelloWorld.jar文件生成后,本人是将jar文件拷到我工程的文件夹内,再者将资源文件一并拷入本文件夹(若不拷贝资源,运行时图片将加载不出来),文件夹内容如下:

小白也会Java软件打包EXE(直接生成一个exe安装文件)_第6张图片

2、运行验证JAR文件

运行jar文件的简单方法就是命令行运行。
快捷打开命令行的方法:在文件夹内按Shift键鼠标右击,在右键菜单里会有一个选项“在此处打开命令窗口(W)”,点击即可进入命令行窗口
若鼠标右键菜单里没有此选项则通过以下方法打开:
按组合键win+r,输入cmd即可打开,然后使用cd命令进入文件夹内
在命令行窗口输入:java -jar HelloWorld.jar
回车

小白也会Java软件打包EXE(直接生成一个exe安装文件)_第7张图片

若看到以上结果则表明导出JAR文件成功,否则再根据步骤重新导出

exe4j打包exe

1、exe4j下载安装

本人已将exe4j安装包放入个人github里,各位游客可以进入自行下载。
下载完成安装也是傻瓜式安装,无需配置任何参数(安装路径除外,看个人爱好)

2、运行exe4j并打包

小白也会Java软件打包EXE(直接生成一个exe安装文件)_第8张图片

直接点击Next,在弹出的窗口里选择“JAR in EXE” mode

小白也会Java软件打包EXE(直接生成一个exe安装文件)_第9张图片

Next,在弹出的窗口里填写所需内容
1:项目名称,这里我们填写:HelloWorld
2:点击选择按钮,选择exe文件的输出路径(这里我选择的是jar的文件位置)

小白也会Java软件打包EXE(直接生成一个exe安装文件)_第10张图片

Next,在弹出窗口选择GUI应用,输入输出exe文件名称,选择图标ico文件

小白也会Java软件打包EXE(直接生成一个exe安装文件)_第11张图片

Next,弹出窗口填写内容
VM Parameters:-Dfile.encoding=utf-8 (防止出现乱码)
Class Path:点击右侧的绿色的加号,将导出的jar文件和lib文件添加进来
Main class:点击右侧的选择按钮,选择主类即可

小白也会Java软件打包EXE(直接生成一个exe安装文件)_第12张图片 小白也会Java软件打包EXE(直接生成一个exe安装文件)_第13张图片

小白也会Java软件打包EXE(直接生成一个exe安装文件)_第14张图片

Next,弹出的窗口为JRE运行环境的配置
最小版本:1.7
最大版本:(可不填)
填完之后点击下图左侧画横线的部分,进入运行环境自定义配置界面

小白也会Java软件打包EXE(直接生成一个exe安装文件)_第15张图片

点击后弹出以下界面,将画圈的几项选中,点击右侧的红叉按钮将其删去,清空完成之后,点击绿色添加按钮,添加准备好的jre运行环境的目录路径

小白也会Java软件打包EXE(直接生成一个exe安装文件)_第16张图片
小白也会Java软件打包EXE(直接生成一个exe安装文件)_第17张图片

删除添加JRE完成之后的结果图如下:

小白也会Java软件打包EXE(直接生成一个exe安装文件)_第18张图片

接着一路欢快的Next就可以啦,直到完成

小白也会Java软件打包EXE(直接生成一个exe安装文件)_第19张图片

到这里jar转exe就已经完成了,想不想运行看看,来我们接着走~
可以直接点击exe4j界面的“Click Here to Start the Application”,也可以直接到我们生成的目录里双击exe文件运行

小白也会Java软件打包EXE(直接生成一个exe安装文件)_第20张图片 小白也会Java软件打包EXE(直接生成一个exe安装文件)_第21张图片

到此jar文件转exe可执行文件就大功告成!
可是存在一个问题就是,exe文件执行需要依赖于资源文件,如JRE运行环境、图片资源、库文件等,无法实现在任意一台电脑上运行,下面我们就将exe与其所需的资源文件一起打包成为一个独立的exe安装文件,可在任一一台Windows电脑运行(32位、64位均可)

Inno Setup打包压缩安装.exe

1、下载安装Inno Setup

这一步骤也没什么可说的,文件下载地址本人github
下载完成,找到对应版本安装即可

2、运行Inno Setup 并打包exe安装文件

运行Inno Setup,新打开的窗口都会弹出欢迎窗口,在窗口中选择“用[脚本向导]创建新的脚本文件(S)”
点击确定

小白也会Java软件打包EXE(直接生成一个exe安装文件)_第22张图片
小白也会Java软件打包EXE(直接生成一个exe安装文件)_第23张图片

直接下一步
在此窗口中填写以下内容
应用程序名称:HelloWorld
应用程序版本:1.0
应用程序发布者:Dainelcw(这里可以写自己的名字)
应用程序网站:https://github.com/Dainelcw (这里可以自定义)

小白也会Java软件打包EXE(直接生成一个exe安装文件)_第24张图片

点击下一步
这里也不需要填写什么,直接下一步

小白也会Java软件打包EXE(直接生成一个exe安装文件)_第25张图片 小白也会Java软件打包EXE(直接生成一个exe安装文件)_第26张图片

到达这里我们要对目录重新设定一番,新建一个文件夹命名为exesetup
将image、javaJre文件夹、icon图标拷入exesetup文件夹内
注意:image、javaJre文件夹都要为双层目录(后面有用)(具体如下图所示)

小白也会Java软件打包EXE(直接生成一个exe安装文件)_第27张图片 小白也会Java软件打包EXE(直接生成一个exe安装文件)_第28张图片

小白也会Java软件打包EXE(直接生成一个exe安装文件)_第29张图片

文件夹建立完成,回到Inno Setup
点击浏览,选择前面exe4j生成的exe文件
点击选择文件夹,选择exesetup文件夹内的image和javaJre文件夹(均选择第一层文件夹)
点击下一步

小白也会Java软件打包EXE(直接生成一个exe安装文件)_第30张图片 小白也会Java软件打包EXE(直接生成一个exe安装文件)_第31张图片

下一步

小白也会Java软件打包EXE(直接生成一个exe安装文件)_第32张图片 小白也会Java软件打包EXE(直接生成一个exe安装文件)_第33张图片

直到这一步

小白也会Java软件打包EXE(直接生成一个exe安装文件)_第34张图片

选择输出文件夹
输入输出文件名
输出文件的图标(可不选)
安装密码(可不填)
选择完成后,点击下一步,直至完成
这里会提示你“现在你要立即编译新的脚本吗?”,选择是
接着弹出问你是否保存脚本,选择是,然后弹出填写脚本文件名的窗口,随便一个名字即可,点击保存
等待编译成功
编译成功后,到输出文件夹下查看:
1、导出的jar 2、exe4j生成的exe(可执行) 3、Inno Setup生成的exe(可安装)

小白也会Java软件打包EXE(直接生成一个exe安装文件)_第35张图片

安装测试

双击setup.exe文件,选择安装路径

小白也会Java软件打包EXE(直接生成一个exe安装文件)_第36张图片

一直下一步,直至安装完成。
我们到F盘看一下安装解压的文件(我安装路径选择的是F盘)

小白也会Java软件打包EXE(直接生成一个exe安装文件)_第37张图片 小白也会Java软件打包EXE(直接生成一个exe安装文件)_第38张图片

至此,Java软件打包EXE安装文件流程完成,若想卸载程序,直接双击unins000.exe即可卸载清除文件!

  • 本文源码及资源文件打包下载:如果您是积分大佬CSDN下起来,如果没有积分没关系,我已放入github上本人github

你可能感兴趣的:(课程实验)