jar to dmg app/windows .exe可执行文件打包方法

最近用JFrame做了一个java jar UI界面应用程序, 查资料发现网上大部分的文章都是使用 ant bundle方式打包, 结果测试,这个方式在新版macos中已经失效, 打包后的app根本无法运行.

最新可用的命令行方式打包jar 到可执行app应用的方法如下:

  1. 使用 packr 打包 这个打包的文件相对 jar2app 打包的方式文件要小很多, 而且使用也很方便,下载 jar Release v4.0.0 · tekintian/packr · GitHub 文件后即可直接使用

地址: https://github.com/tekintian/packr

使用方法:

bash 复制代码
java -jar packr-all.jar \
     --platform mac \
     --jdk https://ghproxy.net/https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u302-b08/OpenJDK8U-jre_x64_mac_hotspot_8u302b08.tar.gz \
     --useZgcIfSupportedOs \
     --executable myapp \
     --classpath myjar.jar \
     --mainclass com.my.app.MainClass \
     --vmargs Xmx1G \
     --resources src/main/resources path/to/other/assets \
     --output myapp

命令执行后自动将你的jar 和你指定的java jre的运行环境, 还有资源文件(通过 --resources 指定) 都打包为可执行的 macos app或者 windows .exe app应用程序.

mac下面打包后是直接保存到 --output指定的目录 myapp , 直接将 myapp文件夹改名为 myapp.app 即是可执行mac应用, 打包后最好使用codesign进行签名

  1. jar2app 方式打包jar

这个工具可以将jar包和jre运行时打包到一起,也可以使用系统中的jre运行时.

打包命令:

bash 复制代码
jar2app target/javaspider-1.0.jar -b cn.tekin.java  -u JSPIDER  -e spider -i spider.icns -n JavaSpider -c "(C)2024 Yunnan.ws Inc."

地址: GitHub - Jorl17/jar2app: Convert any Java jar to a Mac OS X .App bundle. No external tools needed, no funky parameters, it just works.

相关推荐
Yyyyyy~2 分钟前
【java】运算符
java
古法安卓10 分钟前
Android-切换白天黑夜内存不足问题排查
android·java·android studio
Dreams_l17 分钟前
如何保证RabbitMQ消息可靠传输
java·rabbitmq·java-rabbitmq
MacroZheng20 分钟前
面试官皱眉:"你懂 Vibe Coding,那你说superpowers和grill-me怎么选?",我:"小孩才做选择,我全都要!"
java·人工智能·后端
大模型码小白21 分钟前
【AI大模型】DeepSeek Harness 深度解析:大模型评测框架的架构与实践
java·运维·人工智能·spring·架构·自动化
Mr.Java.28 分钟前
本地测试全绿,上线 SQL 报错?Spring Boot 容器级 DT 测试实战指南(附Skills)
java·测试用例·springboot·testcontainers·dt·java测试skills·dt测试
维天说1 小时前
Agent会听人话,反而更难管
java·开发语言·人工智能
SamDeepThinking1 小时前
if嵌套最好控制在3层以内
java·后端·程序员
边境悍匪1 小时前
蜗牛学苑 Java 智能体学习 Day36|阿里云 OSS 文件上传、Spring 事务、全局异常思维导图复盘
java·学习·阿里云
苏渡苇1 小时前
Spring Insight 里上报 Span 为什么用 JDK HttpClient 而不是 RestTemplate
java·后端·spring·spring cloud·springboot·性能监控