发布时间:2025-06-24
浏览次数:0
在日常工作之中,我主要运用Java语言进行编程,而在业余时刻,我对技术探究充满热情,乐于运用Java的图形用户界面库Swing来制作各种实用的小型软件工具。
然而,相较于C/C++,使用Swing进行软件开发存在一个显著不足,那就是Java编译生成的文件无法独立执行,必须借助JRE(Java运行环境)才能启动。若用户未安装JREintellij idea打包exe,该软件便无法启动。因此,鲜有人会考虑用Java来开发桌面应用程序。
当前Java程序打包分发的几种方案:
以上方案都有不同的优缺点:
技术方案在性能上有所提升,同时减少了资源消耗,并具备较高的安全性。然而,其构建过程较为耗时,调试过程也存在一定的难度。此外,该方案不支持反射Jlink二进制文件,相较于携带环境,其构建过程更为复杂,调试难度更大,且体积较大。Exe4J的使用门槛较低,提供了更好的用户体验,调试也更为便捷,但同样体积较大,且需要JRE运行。对于小工具和批处理,它并不适用。在配置上,该方案灵活且易于更新,调试也较为方便,但体积较大,同样需要JRE运行,不适合作为小工具使用。仅以Jar包形式分发时,文件较小intellij idea打包exe,易于更新,但在没有JRE的电脑上无法运行,启动需要命令,使用门槛较高,用户体验不佳。
在上述方案中,二进制文件的分发调试较为复杂,而以jar包形式进行分发则可能降低用户的使用感受。为此,我综合考量了多种方案,决定开发一个打包工具,专门用于将Java程序转换成二进制可执行文件。该工具的软件界面设计如下:
图片
软件使用如下:
现有一个Swing程序如下:
pom.xml文件
4.0.0
org.helloswing
HelloSwing
1.0-SNAPSHOT
17
17
UTF-8
com.formdev
flatlaf
3.5.1
org.apache.maven.plugins
maven-assembly-plugin
3.7.1
jar-with-dependencies
false
org.hellloswing.HelloSwing
make-assembly
package
single
.java文件
package org.hellloswing;
引入 com.formdev.flatlaf.FlatDarkLaf 库;
引入包com.formdev.flatlaf.FlatLightLaf;
import javax.swing.*;
import java.awt.*;
public class HelloSwing {
public static void main(String[] args) 捕获并处理UnsupportedLookAndFeelException异常{
// 初始化皮肤
FlatLightLaf.install();
UIManager应用了新的外观和感觉,选择了FlatDarkLaf风格。
// 初始化窗口
创建了一个名为 "Hello Swing!" 的 JFrame 对象,并对其进行了初始化。
// 设置大小
jFrame.setSize(500, 500);
// 关闭窗口后退出
jFrame设置关闭操作为(JFrame.DISPOSE_ON_CLOSE);
// 设置居中
设置窗口位置使其相对于屏幕居中显示。
// 设置元素
创建了一个名为jPanel的JPanel对象,并设置了其布局管理器为BorderLayout。
jPanel中添加了一个新的JLabel组件,其显示内容为"Hello Swing!",并设置了居中对齐的方式,同时将其放置在布局的中心位置。
jFrame的getContentPane()方法添加了jPanel组件;同时,jPanel被加入到jFrame的内容面板中。
// 显示窗口
jFrame.setVisible(true);
}
}
将文件封装为胖JAR格式,接着提取出精简版的JRE,再利用打包软件对JAR文件进行封装,使其与JRE结合生成exe文件。完成这些步骤后,即可通过双击来启动程序。
图片
特此做个记录。
如有侵权请联系删除!
Copyright © 2023 江苏优软数字科技有限公司 All Rights Reserved.正版sublime text、Codejock、IntelliJ IDEA、sketch、Mestrenova、DNAstar服务提供商
13262879759
微信二维码