- 利用JAVA写出并转化为一个exe可执行文件[1] - 创建maven项目
- 利用JAVA写出并转化为一个exe可执行文件[2] - 将maven项目打成 jar 包
- 利用JAVA写出并转化为一个exe可执行文件[3] - 将 jar 包通过软件转化成为 exe
利用JAVA写出并转化为一个exe可执行文件[3] - 将 jar 包通过软件转化成为 exe
一、基本布局代码
import javax.swing.*;
import java.awt.*;
import java.io.File;
public class Test {
private static JFileChooser chooser;
private static JTextArea jta;
static {
jta = new JTextArea(15, 30);
jta.setLineWrap(true);
jta.setEditable(false);
jta.setFont(new Font(null, Font.PLAIN, 18));
}
public static void main(String[] args) {
JFrame jf = new JFrame("小程序");
jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
jf.setResizable(false);
GridBagLayout gridBag = new GridBagLayout();
GridBagConstraints c = null;
JPanel panel = new JPanel(gridBag);
JButton chooseBtn = new JButton("选择");
JButton exitBtn = new JButton("退出");
chooseBtn.setPreferredSize(new Dimension(250, 30));
exitBtn.setPreferredSize(new Dimension(250, 30));
c = new GridBagConstraints();
c.gridx = 0;
c.gridy = 0;
c.weightx = 0.5;
c.gridheight = 1;
gridBag.addLayoutComponent(chooseBtn, c);
c = new GridBagConstraints();
c.gridx = 1;
c.gridy = 0;
c.weightx = 0.5;
c.gridheight = 1;
gridBag.addLayoutComponent(exitBtn, c);
JScrollPane scrollPane = new JScrollPane(jta, ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
c = new GridBagConstraints();
c.gridx = 0;
c.gridy = 1;
c.gridwidth = GridBagConstraints.REMAINDER;
c.fill = GridBagConstraints.BOTH;
gridBag.addLayoutComponent(scrollPane, c);
chooseBtn.addActionListener(e -> {
jta.setText("");
chooser = new JFileChooser(".");
DBFFileFilter dbfFileFilter = new DBFFileFilter();
chooser.addChoosableFileFilter(dbfFileFilter);
chooser.setFileFilter(dbfFileFilter);
int boo = chooser.showOpenDialog(panel);
if (boo == JFileChooser.CANCEL_OPTION) {
printInfo("哥们你没有选择文件");
return;
}
File file = chooser.getSelectedFile();
if (!file.getName().endsWith(".txt")) {
printInfo("你选择的文件不是 txt 文件...");
return;
}
try {
} catch (Exception ex) {
printInfo("处理出错...");
return;
}
});
exitBtn.addActionListener(e -> {
System.exit(0);
});
panel.add(chooseBtn);
panel.add(exitBtn);
panel.add(scrollPane);
jf.setContentPane(panel);
jf.pack();
jf.setLocationRelativeTo(null);
jf.setVisible(true);
}
public static void printInfo(String log) {
jta.append(log + "\n");
jta.paintImmediately(jta.getBounds());
}
static class DBFFileFilter extends javax.swing.filechooser.FileFilter {
public String getDescription() {
return "*.txt;*.TXT";
}
public boolean accept(File file) {
String name = file.getName();
return file.isDirectory() || name.toLowerCase().endsWith(".txt") || name.toLowerCase().endsWith(".TXT");
}
}
}
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200825085341990.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0dvZF9faXNfX2FfX2dpcmw=,size_16,color_FFFFFF,t_70#pic_center)
二、打包前的准备
- jar 包(含有 main 方法)
- jre环境(适合电脑位数,查看需要32位还是64位,一般来说,用64为兼容32位)
- exe4j
- 你喜欢的图标(.ico后缀的)
三、开始转化
- 下载安装完成后,界面如图,第一步完成注册,Name,Company随意一下就行,点击ok,然后点击next
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200824144315135.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0dvZF9faXNfX2FfX2dpcmw=,size_16,color_FFFFFF,t_70#pic_center)
- 勾选JAR in EXE ,表示要打包jar成exe程序,然后下一步
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200824144445493.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0dvZF9faXNfX2FfX2dpcmw=,size_16,color_FFFFFF,t_70#pic_center)
- 填写打包后的 exe程序名称和保存路径
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200824144551605.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0dvZF9faXNfX2FfX2dpcmw=,size_16,color_FFFFFF,t_70#pic_center)
- exe执行程序配置
- 一般默认选择 GUI application 就好
- 填写 exe 名称
- 选择exe 程序图标,可以在 图标之家 找一个你喜欢的图标
- 电脑是否只能运行一个程序实例
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200825082831387.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0dvZF9faXNfX2FfX2dpcmw=,size_16,color_FFFFFF,t_70#pic_center)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200825083229195.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0dvZF9faXNfX2FfX2dpcmw=,size_16,color_FFFFFF,t_70#pic_center)
- 我这里用的是32位的,所以默认不勾选
- 设置java运行环境参数,添加jar包路径
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200825083738823.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0dvZF9faXNfX2FfX2dpcmw=,size_16,color_FFFFFF,t_70#pic_center)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200825083953543.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0dvZF9faXNfX2FfX2dpcmw=,size_16,color_FFFFFF,t_70#pic_center)
set JAVA_OPTS=%JAVA_OPTS% -server -Xms800m -Xmx800m -XX:MaxNewSize=256m
- 选择支持的 jdk 的最高版本和最低版本
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200825084333968.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0dvZF9faXNfX2FfX2dpcmw=,size_16,color_FFFFFF,t_70#pic_center)
- 添加jre环境
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200825084706845.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0dvZF9faXNfX2FfX2dpcmw=,size_16,color_FFFFFF,t_70#pic_center)
- 我这里用的是相对环境路径
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200825084929442.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0dvZF9faXNfX2FfX2dpcmw=,size_16,color_FFFFFF,t_70#pic_center)
- 一直 next 到完成即可。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200825085044326.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0dvZF9faXNfX2FfX2dpcmw=,size_16,color_FFFFFF,t_70#pic_center)
- 效果展示
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200825085206741.png#pic_center)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200825085233485.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0dvZF9faXNfX2FfX2dpcmw=,size_16,color_FFFFFF,t_70#pic_center)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200825085254359.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0dvZF9faXNfX2FfX2dpcmw=,size_16,color_FFFFFF,t_70#pic_center)