之前公司处理一些文件,需要读取视频信息,数据速率,比特率,帧宽等信息,就写了个方法处理下,前段时间又要搞,就写个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框架都不错,可以尝试下