- 利用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://i-blog.csdnimg.cn/blog_migrate/59242188091a0a30288f5d15efb043ed.png#pic_center)
二、打包前的准备
- jar 包(含有 main 方法)
- jre环境(适合电脑位数,查看需要32位还是64位,一般来说,用64为兼容32位)
- exe4j
- 你喜欢的图标(.ico后缀的)
三、开始转化
- 下载安装完成后,界面如图,第一步完成注册,Name,Company随意一下就行,点击ok,然后点击next
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/1afa8eba3efef5fec00c5a361b60a72b.png#pic_center)
- 勾选JAR in EXE ,表示要打包jar成exe程序,然后下一步
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/4c0f8ad361bcfa4d7ff13e7f80b6dfb5.png#pic_center)
- 填写打包后的 exe程序名称和保存路径
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/88e736f15b704db5f25174669a084fc4.png#pic_center)
- exe执行程序配置
- 一般默认选择 GUI application 就好
- 填写 exe 名称
- 选择exe 程序图标,可以在 图标之家 找一个你喜欢的图标
- 电脑是否只能运行一个程序实例
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/a7ddd8db430944dab7a4b3bd705b4bcc.png#pic_center)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/95ba5183a9a2adf2715479c040ab8bf0.png#pic_center)
- 我这里用的是32位的,所以默认不勾选
- 设置java运行环境参数,添加jar包路径
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/734824964d92aad0e6c5472784845c72.png#pic_center)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/fd584c07c3d1b1933293161cb0b6245d.png#pic_center)
set JAVA_OPTS=%JAVA_OPTS% -server -Xms800m -Xmx800m -XX:MaxNewSize=256m
- 选择支持的 jdk 的最高版本和最低版本
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/10b85bb5ae088d42896bb79661c65598.png#pic_center)
- 添加jre环境
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/d9ae4682e0602cc39343b7ded8615f13.png#pic_center)
- 我这里用的是相对环境路径
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/05d067c6acdda2efed5678ecda894831.png#pic_center)
- 一直 next 到完成即可。
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/470bbe8bd327067dd1166acdb911d930.png#pic_center)
- 效果展示
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/1c07332dc593977250e428891ce94450.png#pic_center)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/47f4daca1f1ca1497af0839d565edafa.png#pic_center)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/ff9b8ff3743ab34127e355a4cb336180.png#pic_center)