Java 转 native 究竟行不行?无需精通 graalvm native-image 配置就能打包 native exe 方法分享。

ko1haha 2026-08-17 23:41 1

编译了一天一夜!


总算把我的老 javafx 项目编译成正宗的 exe 了。


花费这么长时间,也有我设备的问题。


8G 上网本(主力机跑别的),空闲内存只有一半。


配置点虚拟内存、换成 opencode web 版本,腾出点内存,继续搞。


没错,agent 时代,谁还一个人苦哈哈地编译啊。


当然是让人工智能给我打工。


方法就是:先准备一份可以运行的 java 版本,让 opencode 调用 java.exe 启动主类。


然后,让它把十几个 jar 用 native-image 编译成 exe ,成功后 opencode 自动调起并分析错误,不断迭代。


这很厉害,我都不知道哪里去找 log, 手动把 exe 拖进 cmd 也没有日志。


终于,javafx 的窗口跑出来了,里面 webview (webkit) 能显示,但一操作就闪退崩溃。


紧接着发现,opencode 竟然在分析汇编指令……


继续,自动迭代……


编译一次半小时,必须交给没有感情的机器人!


继续跑了一两个小时,终于修好了,操作 webview 内容不再崩溃(但是内存浮动明显,比 java8 还糙,简单操作竟然在 300mb-900mb 间浮动!)。


仍有很多功能缺失:打不开系统的文件选择器( awt/jna 又出问题?)、没有正确启动 web 服务(开着纯血 java 版陪跑!)。


还是得放弃 javafx 了,没啥优势。


如果舍不得生态的话,就做成 web 服务。


明天再试,机器太烫了。

最新回复 (9)
  • jlkm2010 08-18 00:02
    1
    Java 不要折腾转 native ,这不是 java 擅长的领域
  • wenhuibrave 08-18 00:10
    2
    Java 搞 native ,限制太多了,给自己上难度啊
  • Oktfolio 08-18 01:11
    3
    没必要,直接叫 AI 重写吧
  • yidinghe 08-18 02:08
    4
    如今各种 webview 套壳的框架,吃内存比 Java 多多了。
  • msg7086 08-18 04:18
    5
    个人看法,native 适合新项目,各种组件都适配好了可以无痛上的那种。老项目包袱大,上起来不划算。
  • cheng6563 08-18 10:01
    6
    你要不算算你编译花了多久。
  • wuhunyu 08-18 13:28
    7
    要不然咱就换一种语言, 用 go 吧
  • skwyl 08-18 14:44
    8
    换吧,我的 agent 都从 java 转 go 了,java 不适合做这种桌面端的东西,也不适合搞小工具
  • j1132888093 08-18 14:53
    9
    我们迁了一大半服务了,就是打包慢了点,目前 32C32G 打包,启动从分钟级到秒级了
* 帖子来源V2EX
返回