资讯同步 on Nostr: #V2EX ### [Java] Java 转 native 究竟行不行?无需精通 graalvm native-image ...
#V2EX
### [Java] Java 转 native 究竟行不行?无需精通 graalvm native-image 配置就能打包 native exe 方法分享。
编译了一天一夜!
总算把我的老 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 服务。
明天再试,机器太烫了。
https://www.v2ex.com/t/1235141#reply2Published at
2026-08-17 16:21:56 UTCEvent JSON
{
"id": "3c0c25b0bb5eb3e27d6f2932e6447b1635963e122f4dcf4cd55abcd2ee97bb41",
"pubkey": "2d0154e14033e848b448a971322bfbf4e04a29c377012ee0f5ab66099b56f1ad",
"created_at": 1786983716,
"kind": 1,
"tags": [
[
"t",
"v2ex"
]
],
"content": "#V2EX\n### [Java] Java 转 native 究竟行不行?无需精通 graalvm native-image 配置就能打包 native exe 方法分享。\n\n编译了一天一夜!\n\n总算把我的老 javafx 项目编译成正宗的 exe 了。\n\n花费这么长时间,也有我设备的问题。\n\n8G 上网本(主力机跑别的),空闲内存只有一半。\n\n配置点虚拟内存、换成 opencode web 版本,腾出点内存,继续搞。\n\n没错,agent 时代,谁还一个人苦哈哈地编译啊。\n\n当然是让人工智能给我打工。\n\n方法就是:先准备一份可以运行的 java 版本,让 opencode 调用 java.exe 启动主类。\n\n然后,让它把十几个 jar 用 native-image 编译成 exe ,成功后 opencode 自动调起并分析错误,不断迭代。\n\n这很厉害,我都不知道哪里去找 log, 手动把 exe 拖进 cmd 也没有日志。\n\n终于,javafx 的窗口跑出来了,里面 webview (webkit) 能显示,但一操作就闪退崩溃。\n\n紧接着发现,opencode 竟然在分析汇编指令……\n\n继续,自动迭代……\n\n编译一次半小时,必须交给没有感情的机器人!\n\n继续跑了一两个小时,终于修好了,操作 webview 内容不再崩溃(但是内存浮动明显,比 java8 还糙,简单操作竟然在 300mb-900mb 间浮动!)。\n\n仍有很多功能缺失:打不开系统的文件选择器( awt/jna 又出问题?)、没有正确启动 web 服务(开着纯血 java 版陪跑!)。\n\n还是得放弃 javafx 了,没啥优势。\n\n如果舍不得生态的话,就做成 web 服务。\n\n明天再试,机器太烫了。\nhttps://www.v2ex.com/t/1235141#reply2",
"sig": "5e8aa2e38c36b91b09704930308e06a80b896262acd904e54cd65ad95f35a5a5e096575fb58e1a9614f902aee611b99b064192dcae9f99d05cd9fca0ad9ee020"
}