惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

IT之家
IT之家
Y
Y Combinator Blog
月光博客
月光博客
Blog — PlanetScale
Blog — PlanetScale
GbyAI
GbyAI
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园 - 三生石上(FineUI控件)
S
SegmentFault 最新的问题
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
美团技术团队
雷峰网
雷峰网
酷 壳 – CoolShell
酷 壳 – CoolShell
Last Week in AI
Last Week in AI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
有赞技术团队
有赞技术团队
博客园 - 司徒正美
V
Visual Studio Blog
小众软件
小众软件
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
T
Tailwind CSS Blog
Apple Machine Learning Research
Apple Machine Learning Research
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
A
About on SuperTechFans
The Cloudflare Blog

Java

开源:用刚发布的 Spring AI 2.0.1,撸了一个全功能 Agent - V2EX 纯开源 Nexus 替代方案 kkRepo 1.0.0 正式发布,新增 R/CRAN、Go Hosted 和多套 UI 主题 - V2EX 不想写代码,但想要集成一个登录页面? Sa-Token-Quick-Login 帮你实现! - V2EX 善于学习的 Java 后端朋友们,想请教下你是如何榨干自己的工作项目经验,把它沉淀下来慢慢积攒成自己的能力的? - V2EX Java Crac 几乎正式可用 - V2EX Sa-Token v1.46.0 发布 🚀,来看看有没有令你心动的功能! - V2EX 可以下线 Nexus 了:纯开源制品仓库 kkRepo v0.9.0 发布,新增 Alpine、Hugging Face Models 与全局搜索 - V2EX Java 转 native 究竟行不行?无需精通 graalvm native-image 配置就能打包 native exe 方法分享。 - V2EX fastjson 居然停止维护了 - V2EX happens-before 详解 华为的毕昇 JDK 8 AppCDS 特性稳定吗? 我把 Java 开发的 kkRepo 支持 AOT 编译, 1s 极速启动,空闲内存小于 200MB fastjson1.x 最新版本疑似又出 RCE 漏洞了 讲讲我怎么获得 kkRepo 的首个企业用户,成功替换掉 Nexus,每年节省 $1,620 PRO 订阅费用 Sonatype 正引入 Maven Central 仓库发布使用情况可见性和针对高流量发布活动的限制 使用 kkRepo 搭建 Maven 私服 Nexus 的平替 neuxs-plus 开源涉嫌商标侵权,被迫改名 kkRepo 我在 IDEA tab 里养了一只猫 Java 确实是内存高效的 用 AI 把 visualvm 的部分功能界面换了个马甲 javaer 现在出去面试 问哪些内容 sa-token + spring cloud gateway 过滤器顺序问题 关于在 wsl 中使用 idea 进行 Java 开发的问题 求助, Fortify 漏扫问题解决 微信 ClawBot 和企微 AIBot 的 Java SDK 老业务信创重构选型大家有啥建议 ai 编程的情况在你们使用什么 IDE 下面这段 Java 多态的代码,如何才能改为 Go、 Python 、JS、C++版本? JDK 26 发布,非 lts 版本 DoytoQuery vs SpringDataJPA
让 Java 再次伟大,没有人比我更懂得如何打包!(分享一个四...
ko1haha · 2026-06-29 · via Java

Java 确实是内存不高效的。同样的内存,fultter / dart 能够创建流畅的应用,而 Java 要么卡成 ppt ,要么疯狂吃内存。

分享测试一个虚拟机内存回收效率的方法(大家应该都会吧:):win 下使用 procgov 假装本机只有 100 mb 内存,再运行 gui 程序,测试卡不卡。

结果,javafx 卡成 ppt ,flutter 写的桌面 app 却依然流畅,几乎没有卡顿!(例子:dart 写的 myune_music 存在严重的内存泄漏,稍微切换内存狂飙 300mb+,然而限制 100mb 后,依然流畅,神奇吧!)

这说明 flutter / dart 的虚拟机比 java 更高级 —— 即使再内存泄露的情况下。

人才不断涌入新的领域,Java 已经成熟到可以封印起来装裱,成熟到可以使用 java8 一万年,新的改进似乎九牛一毛,再也不能从根本上提升。

但当我从 64 位的 java8 切换到 32 位的 java8 ,内存需求立马减半,即使限制 100mb 内存,也没有那么卡了。

这给我一点信心。我还是很喜欢 javafx ,也曾升级到新的 open jdk ,打包方式太复杂,而且几乎没有区别,尤其是浏览器内核,所以又回到 java8 并锁死。

那么,如何打包分享给其他用户呢?

搜遍全网,似乎没有好的方案?

  • Launch4j: 提供把单个 jar 追加到预制的启动器后面的 blacksmith 。多 jar 需要一个个填写十分麻烦。
  • jsmooth: 也是预制启动器.exe ,可以更方便地添加多个 jar (相对路径)作为启动参数。

这些方案的本质是启动器。因为 java 程序的本质就是调用上位开发者提供的虚拟机.exe 运行编译后的字节码。

那我自己写个启动器好了!编不了虚拟机,我还编不了启动器?小样,何须他人预制!

先说我自己如何自用一些 java 小工具的:使用 idea 编译后,写个 bat/AHK/Python 调用 java.exe 运行编译好的 class 。

那么我的启动器就可以封装这条启动指令。

图像( AHK 写的启动器 GUI ):

没有检测到 jvm 的时候,提供下载链接。启动成功后,保存快捷方式,就能直接运行 javaw.exe ,不再需要启动器,干掉中间层!

别人还在研究怎么使用他人预制的启动器.exe ,我已经干掉启动器了,启动器就是个跳板,用于导出快捷方式,也可以右键固定开始菜单,几乎没啥问题!

就用这个方法发布些小工具吧,让 Java 再次伟大,从占领小工具 && 小游戏开始!