Launch4j + Inno Setup 将Swing项目打包成可执行文件(exe)

之前公司处理一些文件,需要读取视频信息,数据速率,比特率,帧宽等信息,就写了个方法处理下,前段时间又要搞,就写个swing,现在记录一下

方法很简单,就是cmd调用ffmpeg解析视频文件,读取数据,导出到excel,重点说一下swing打包成可执行文件以及中间注意的事项

1.项目是springboot+maven创建的,ui使用的是beautyeye,项目完成后,打包成jar

pom.xml

<packaging>jar</packaging>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>

maven打包

mvn clean package -Dmaven.test.skip=true

jar包移出项目启动也是可以打开的

java -jar xxx.jar

2.使用Launch4j将jar打包成exe

launch4j下载,安装时如果提示jre,可按照提示下载

看上图,launch4j只需要填写Basic和JRE模块信息即可,Basic简单,重点说一下JRE配置,后面使用Inno Setup打包时候需要用到

Bundled JRE path:这里使用的时jre相对位置,绝对位置因安装位置不同会不生效  64-bit根据版本选择

JVM options:参数一定要写上 -Dlaunch4j.pwd="%PWD%" ,在下面Variables / registry中选择PWD 点击后面的 Property 即可自动添加上去 

说一下这里的jvm参数,不写是调用之前下载的jre位置,且打包后也是调用这个位置,在其他电脑则不能运行,PWD指的是当前文件夹,详细配置看官网文档

配置完成后点击保存配置(Save configuration)后可在文件中看到配置信息,点击Build wrapper(小齿轮)生成exe文件

3.使用Inno Setup将所有文件打包

启动Compil32.exe后创建新脚本一步一步走即可,下图时将jre添加进去

如果有图片或其他资源文件也要添加进去,放在和launch4j生成的exe文件同级,否则调不到,这个简单就没有图片什么的

生成setup.exe后安装的文件夹如下,这里同级下是jre,可以在第二步的 Bundled JRE path 中详细配置

说一下坑吧

exe4j 

springboot的Main Class需要选择JarLaunch,选择启动类会报错,打包完成后先提示jre版本,然后直接报错,启动失败,遂更换其他软件

launch4j

关键是jre设置,打包后制作成可执行文件,在其他电脑启动失败,因为默认调用C:\Program Files\Java 下的jre,看了官网文档设置当前文件夹才行

项目之所以用swing是因为之前在《Java核心技术》看了一点练了练手,javafx和tornadofx框架都不错,可以尝试下

 

 

 

 

 

 

 

 

 

 

 

 

要将Java Swing项目打包exe文件,并获取exe文件的路径,可以使用第三方工具,如Launch4j或JSmooth。这些工具可以将Java应用程序打包可执行的exe文件,并提供了获取exe文件路径的功能。 以下是使用Launch4j的示例步骤: 1. 下载并安装Launch4j:访问Launch4j的官方网站(https://launch4j.sourceforge.io/),下载适合你操作系统的版本,并按照安装说明进行安装。 2. 创建Launch4j配置文件:创建一个XML配置文件,用于指定你的Java Swing项目的相关设置。例如,创建一个名为`config.xml`的文件,并在其中添加以下示例配置: ```xml <launch4jConfig> <dontWrapJar>false</dontWrapJar> <headerType>gui</headerType> <outfile>your_app_name.exe</outfile> <jar>path/to/your_jar_file.jar</jar> <icon>path/to/your_icon.ico</icon> <classPath> <mainClass>your_main_class</mainClass> <preCp>anything</preCp> </classPath> </launch4jConfig> ``` 确保将`your_app_name.exe`替换为你想要的exe文件名,将`path/to/your_jar_file.jar`替换为你的Java项目jar文件路径,将`path/to/your_icon.ico`替换为你想要的应用程序图标的路径,将`your_main_class`替换为你的主类名。 3. 使用Launch4j打包:打开Launch4j,并导入你创建的配置文件。点击"Build wrapper"按钮,选择保存exe文件的路径和名称。然后点击"OK"进行打包。 4. 获取exe文件的路径:在Java代码中,可以使用以下代码获取到正在运行的exe文件的路径: ```java String exePath = new File(Main.class.getProtectionDomain().getCodeSource().getLocation().toURI()).getPath(); System.out.println("Exe file path: " + exePath); ``` 确保将`Main`替换为你的主类名。 这样,你就能够将Java Swing项目打包exe文件,并获取exe文件的路径了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值