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

推荐订阅源

C
Check Point Blog
罗磊的独立博客
博客园 - 叶小钗
Google DeepMind News
Google DeepMind News
Hugging Face - Blog
Hugging Face - Blog
人人都是产品经理
人人都是产品经理
J
Java Code Geeks
WordPress大学
WordPress大学
大猫的无限游戏
大猫的无限游戏
Blog — PlanetScale
Blog — PlanetScale
F
Fortinet All Blogs
小众软件
小众软件
M
MIT News - Artificial intelligence
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
酷 壳 – CoolShell
酷 壳 – CoolShell
The GitHub Blog
The GitHub Blog
A
About on SuperTechFans
Y
Y Combinator Blog
Recorded Future
Recorded Future
量子位
美团技术团队
S
Security @ Cisco Blogs
G
Google Developers Blog
Cyberwarzone
Cyberwarzone
C
Cybersecurity and Infrastructure Security Agency CISA
博客园 - 三生石上(FineUI控件)
博客园 - 司徒正美
D
Docker
S
Schneier on Security
T
Tor Project blog
阮一峰的网络日志
阮一峰的网络日志
T
Threatpost
P
Privacy & Cybersecurity Law Blog
C
Cisco Blogs
L
Lohrmann on Cybersecurity
NISL@THU
NISL@THU
Microsoft Azure Blog
Microsoft Azure Blog
博客园 - 聂微东
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
T
The Exploit Database - CXSecurity.com
A
Arctic Wolf
I
Intezer
Latest news
Latest news
Martin Fowler
Martin Fowler
G
GRAHAM CLULEY
B
Blog
V
Vulnerabilities – Threatpost
The Register - Security
The Register - Security
S
Securelist
T
Tenable Blog

Java

华为的毕昇 JDK 8 AppCDS 特性稳定吗? - V2EX 我把 Java 开发的 kkRepo 支持 AOT 编译, 1s 极速启动,空闲内存小于 200MB - V2EX fastjson1.x 最新版本疑似又出 RCE 漏洞了 - V2EX 讲讲我怎么获得 kkRepo 的首个企业用户,成功替换掉 Nexus,每年节省 $1,620 PRO 订阅费用 - V2EX Sonatype 正引入 Maven Central 仓库发布使用情况可见性和针对高流量发布活动的限制 - V2EX 让 Java 再次伟大,没有人比我更懂得如何打包!(分享一个四两拨千斤的多 jar 打包 exe 方式) - V2EX 使用 kkRepo 搭建 Maven 私服 - V2EX Nexus 的平替 neuxs-plus 开源涉嫌商标侵权,被迫改名 kkRepo - V2EX 我在 IDEA tab 里养了一只猫 - V2EX Java 确实是内存高效的 用 AI 把 visualvm 的部分功能界面换了个马甲 - V2EX javaer 现在出去面试 问哪些内容 sa-token + spring cloud gateway 过滤器顺序问题 - V2EX 关于在 wsl 中使用 idea 进行 Java 开发的问题 - V2EX 求助, Fortify 漏扫问题解决 - V2EX 微信 ClawBot 和企微 AIBot 的 Java SDK - V2EX 老业务信创重构选型大家有啥建议 - V2EX ai 编程的情况在你们使用什么 IDE - V2EX 下面这段 Java 多态的代码,如何才能改为 Go、 Python 、JS、C++版本? - V2EX JDK 26 发布,非 lts 版本 - V2EX DoytoQuery vs SpringDataJPA - V2EX 求推荐比较优秀的 springboot 脚手架项目 - V2EX vscode 里自用 Java 开发插件:支持复制引用路径、rest 接口路径、Arthas 命令等功能 - V2EX 自荐 Java 多线程神器——ThreadForge ,让多线程从此简单 - V2EX 屎山老项目想用 ai 实现自动化测试,有什么可落地的方案么 - V2EX WebFlux 项目 被访问后 访问方关闭连接 无法捕获 SocketException: Connection reset - V2EX 有人用 RUOYI 框架吗? - V2EX 关于商用 jdk 收费的问题,有遥测吗? - V2EX IDEA 在 macOS 上卡住 - V2EX Java : 2026 年 SpringBoot, Quarkus, Solon ? - V2EX 佬们有没有比较好的 Java 脚手架 - V2EX 一个对比 JavaORM 框架的小仓库 - V2EX 想问一个关于 IO 流的细节 - V2EX 关于我在腾讯云 windows 服务器起了一个后端服务,但是服务器本地都请求不到的问题 11 - V2EX 分享一个 idea 的无响应 bug,如果你也遇到 - V2EX JNI 是否有向"简洁"演化的可能? - V2EX 多实例 springboot 微服务重启时 Counter 类型指标重置问题 - V2EX 讨论个问题:该不该重写 equal 和 hashcode - V2EX 求助 泛型转换碰到一个很奇怪的问题 Object 放 Redis 自动变成 JSONObject 了 - V2EX Java Agent 该怎么快速学习?有教程文档推一下吗? - V2EX 能不能别用那烦人的 MyBatis-Plus 了! - V2EX 作为 Java boy 你们业余时间会学点什么? - V2EX 各位 v 友们!有无无敌好用的剪辑软件求推荐! - V2EX 如何从反射的 Field/Method 动态构造 mybatis 的 SFunction? - V2EX Java 得冗余与啰嗦是不是对 AI 不友好 - V2EX 问一个日志不打印栈信息的问题 - V2EX 为何 RestTemplate 无法定制请求 - V2EX 日经吐槽:现在的 Java 语言真的有点令人恶心 - V2EX 新手 javaer 咨询几个问题 - V2EX 自学 Java 看不懂报错信息和代码,有什么推荐 ai 拿来自学的吗? - V2EX 用 netty 编写代理服务器,切换出口 IP,不能及时生效 - V2EX mysql 慢日志分析排查小工具 1.0.0 - V2EX Preferences.userNodeForPackage(Object.class)存储位置在哪里? - V2EX vscode 中 augment code 怎么使用 mcp - V2EX mysql 慢日志分析排查小工具 - V2EX 现在学 Java 算 49 年入国军吗 - V2EX 推广一下自己刚撸的 IDEA 插件—Bean Copy 助手 - V2EX 几千万的数据量,层级权限下的列表展示页查询应该怎么设计? - V2EX 大家生产环境会一直开着 JFR 吗 - V2EX 有没有新版 Java 的佬(jdk25 和 21 这种), 上手还是走官方文档吗 - V2EX Java 程序员面经怎么准备 - V2EX
Java 的一次编译到处运行在目前还有优势吗 - V2EX
YanSeven · 2025-10-24 · via Java

这是一个创建于 233 天前的主题,其中的信息可能已经有所发展或是发生改变。

renfei

1

renfei      2025 年 10 月 24 日   ❤️ 2

有啊,国产化替代的时候,我们 javaer 不用考虑各种国产化 CPU 的差异,都扔给 JVM 了

zhoudaiyu

3

zhoudaiyu      2025 年 10 月 24 日

@SGL #2 用 openjdk 的就可以,无非就是 ARM 和 X86

hronro

4

hronro      2025 年 10 月 24 日   ❤️ 3

没有任何优势,因为在需要运行的机器上还需要安装 JVM ,所以很多面向普通用户的软件在分发的时候,会选择把用到 JRE 打包一起分发,这种分发方式比起用 Go 写的纯静态编译的软件,没有任何优势,相比之下 Go 写的软件冷启动速度更快,体积更小,全方面地胜过 JVM 。

假如时间倒流,当初 JAVA 选择和各大操作系统厂商合作,直接在 OS 里内置 JRE ,用户直接下载 JAR 包就能运行,那这种方式可能还有点意义,不过这种 JAVA 程序员在写代码的时候就得写各种兼容性代码来确保在各 JVM 版本里的兼容性了。

hronro

5

hronro      2025 年 10 月 24 日

@renfei 放到编译型语言里,这也是编译器后端需要考虑的事情,普通的业务层代码也不关心这个。

bootvue

6

bootvue      2025 年 10 月 24 日   ❤️ 1

只有生态的优势 各种轮子 除此之外没有任何优势

yakun4566

7

yakun4566      2025 年 10 月 24 日

@hronro #4 很多年的 Javaer ,没有用过 go ,之前遗留的项目有个 Go 的项目,同事在部署的时候本地打完包在服务器上运行不了,最后发现是 win10 跟 Windows server 的依赖不一样,还把 go 的版本降级了才打包能在服务器运行。相对于在服务器上装个符合版本的 jvm ,我觉得还是 java 比较省心

bronyakaka

8

bronyakaka      2025 年 10 月 24 日

单论体积 非云场景优势很大,比 go 那几十 mb 一坨更轻量;但我感觉这点体积也不重要,aot 快速启动比较舒服

ntdll

9

ntdll      2025 年 10 月 24 日   ❤️ 1

以现阶段看,其实是伪命题了,能到处运行又怎么样,你的依赖项还是得根据不同平台来装,除了现在少数开源软件的 GUI 采用的 Java 编写,算是用上了这个“一次编译,到处运行”的特点,其他场景下,这个的意义都不大了,如果真的想对于环境差异,进行抹平,还不如 docker 一把梭

joshuacavell

10

joshuacavell      2025 年 10 月 24 日

Cpp 和 JAVA 都争论这个话题几十年了,各自都有完整的论述.只要生态够完整就没有必要纠结.而且都到这个体量了,编译型的新语言层出不穷,基于虚机技术的几乎只有 C#和 JAVA.
C#用户怼 JAVA 正常,Cpp 作为编译型语言的旗帜和 JAVA 辩经也正常,其他语言碰瓷 JAVA 是真好笑😄

zxjxzj9

12

zxjxzj9      2025 年 10 月 24 日   ❤️ 3

现在来看最能解决一次编译到处运行的反而是 docker ,其次是 go 这种到处编译到处运行的,最后才是 java 这种一次编译但是要考虚拟机到处运行的。

huijiewei

15

huijiewei      2025 年 10 月 24 日

优势当然是有的。一个写业务的,直需要考虑在 jvm 里面没 bug 就行了,平台和架构的复杂性 jvm 都帮你解决了。

你自己试试 go 。编译完,目标系统稍微升级个小版本就可能 boom

fortytwo

17

fortytwo      2025 年 10 月 24 日   ❤️ 1

我觉得这个问题在当时的时代背景比较重要,现在完全不重要了。
Java 核心在于 JVM 虚拟机设计,来完成“一次编译到处运行”功能。
现在各种服务大多也是运行在系统层级定制的虚拟机上的。
任何语言,本质上都可以使用 dockers 等虚拟化工具来运行。

但是 JVM 这个先发优势,给了 Java 足够的时间发展生态。使得生态成为了 Java 护城河,和 Python 一样。

所以没有优势,唯一的优势是 Java 生态,大类的工具类库,解决方案。

Ayanokouji

18

Ayanokouji      2025 年 10 月 24 日

1. 一次编译到处运行在目前没有啥优势,java 自己都在搞 native
2. 不能否认 jvm 的其他优势

dddd1919

19

dddd1919      2025 年 10 月 24 日

jvm 优势还是有的,程序自身的适配能力强。
但系统越来越复杂化,除了应用本身,外部依赖越来越多,比如图片处理会用到 imagemagick ,视频加工用到 ffmpeg ,一个完整应用的边界从一个简单进程延伸到各种第三方依赖,所以 java 的理念在今天也就拓展到虚拟化技术上,把整套系统打包成一个可以到处运行的包,比如大型的 vm ,或者轻量的 docker

raptor

20

raptor      2025 年 10 月 24 日   ❤️ 1

JAVA 的优势早就不在这里了,而在于生态和会的人多

dacapoday

21

dacapoday      2025 年 10 月 24 日

WASM+(C/C++,Rust,Python)

james2013

22

james2013      2025 年 10 月 24 日 via Android

当然有优势,做为后端项目,生态成熟,强类型,到处运行。除了内存占用的较多
我用了几年 python ,python 大项目光是在本机 win10 和服务器 unbutu 进行运行的差距就太大了。

moverinfo

23

moverinfo      2025 年 10 月 24 日 via iPhone

如果单从一次编译到处运行,我认为没有优势。因为实际情况是你的软件并没有一会儿在 Windows 上运行,一会儿在 Linux 上运行的需要。而 Java 的优势是它的健壮性,稳定性,调试也相对容易。它的生态还是比较庞大的。你用另一个语言真的无法替代它。

我最近聚焦在 Java 的框架设计上,期待开发一套轻量级、同时支持命令行和 Web 服务的方式运行的框架。这样的开发出来的软件维护起来就会比较方便。

000sitereg

24

000sitereg      2025 年 10 月 24 日

@moverinfo 是的 但是会运行在不同的 linux 发行版上。但是只要转好了 jvm 就都不管了。
我可以本地编译放到服务器,也可以从服务器下载我的程序在本地跑。
CPP 做不到。已经实现当初的目标了。后来者 go 啥的 上面已经说了

rb6221

25

rb6221      2025 年 10 月 24 日

有的兄弟有的
草台班子公司里,我在我的 windows 开发机上改了 java 代码,然后打个 jar 出来,把这个 jar 直接丢到 linux 服务器上就行了

lysShub

26

lysShub      2025 年 10 月 24 日

一直认为这种说法很取巧,还不是先得安装对应系统架构的 JVM

要求有 gcc 环境,那 C 不也能 run anywhere?

Gilfoyle26

27

Gilfoyle26      2025 年 10 月 24 日   ❤️ 1

有优势,好招人 ,单论语言来说,Java 的牛马是最多的。

nkidgm

28

nkidgm      2025 年 10 月 24 日

很多人都没意识到,Java 最有价值的东西是 JVM.

aleviosa

31

aleviosa      2025 年 10 月 25 日   ❤️ 1

JS 和 Python 甚至不需要(开发者自己)编译也能到处运行,开发效率还更高,相比之下 Java 的优势是生态成熟和码农池子大,当然这也是场景和区域限定。国外那种 native app 还不如网站功能齐全,缺乏巨无霸 app ,到处都是 web 服务的地方,JS 的应用生态和码农池子更大。现在最热的 AI ,赛博炼丹的又都是 Python 。现在各大 LLM 写代码训练得成熟的不是 JS 就是 Python ,日后马太效应还会更来更严重……

msg7086

32

msg7086      2025 年 10 月 25 日   ❤️ 1

@lysShub 你是说同一个 C 二进制文件可以到处运行?
Linux 下编译出来的 C executable 可以在 Windows 上直接运行?

greenskinmonster

33

greenskinmonster      2025 年 10 月 25 日 via Android

我前一阵把客户一个 Java 1.5 版本 32 位的 jre 升级成了 1.8 版本 64 位,解决最大内存不足的问题,代码不需要任何调整,你说有没有用,反正是省了我很多事。

iseki

35

iseki      2025 年 10 月 25 日 via Android

有优势也有劣势。当你看到一个 jar 包老大个因为里面放了十几个平台的动态库而你的程序只需要在两个平台上运行时你就不太高兴了。不过题外话 OpenJDK 兼容性确实做得比 Go Runtime 强,OpenJDK24 还能在 Windows 7 上运行,但是 Go 却不行了。

user1284

36

user1284      2025 年 10 月 25 日   ❤️ 1

wasm: 你好

hefish

37

hefish      2025 年 10 月 25 日   ❤️ 1

当然没有优势,不然我们写 go, 写 c ,写 rust 的还怎么装逼。

sir283

38

sir283      2025 年 10 月 25 日

Java 肯定没有优势了,优势都被 Web 前端、Golang 、Rust 给超越了,特别是前端的 JavaScript ,一份代码走天下,都不需要虚拟机了。

kxg3030

39

kxg3030      2025 年 10 月 25 日

是一份代码,处处编译,不是一次编译,处处运行

YzSama

41

YzSama      2025 年 10 月 25 日

@hronro #4 JVM 的规范和生态,已经不仅仅是 Java 独享了。

如果需要迁移适配, 国产 CPU 可以快速的按 JVM 规范进行适配的。 这个还是有很好的优势。 对 Java 程序来说,本身就没变化。

yolee599

43

yolee599      2025 年 10 月 25 日 via Android

java 的优势在于招人容易,人力便宜,虽然啰嗦但是容易维护,代码风格比较统一,可以用的库多

VeteranCat

44

VeteranCat      2025 年 10 月 25 日

Java,只要有 Spring 就足够了。 任你怎么辩经,等其他语言有了类似的几乎已经成为标准的框架再来说吧。

VeteranCat

45

VeteranCat      2025 年 10 月 25 日

@nkidgm 他们都是拿个人开发的小账来算企业级开发的大账,挺无语的,都懒得跟他们辩。

unixipc

46

unixipc      2025 年 10 月 25 日

巨大的优势,码农在自己机器上做开发( Windows ,MacOS ),然后部署到任意环境,语言和框架的行为不会有任何不同。

xufei0913

47

xufei0913      2025 年 10 月 25 日   ❤️ 1

放到现在 java 唯一的优势就是生态,而生态放到任何一个行业都是王炸

nuII

48

nuII      2025 年 10 月 25 日

在选软件的时候,用 java 写的是扣分项

ingramyang

49

ingramyang      2025 年 10 月 25 日

我的观点 47 楼一致。Java 的到处运行优势在云原生( docker ,K8S )生态下已荡然无存,并且启动效率和内存占用还有依赖都极其笨重。但生态,是其他语言短时间内无法逾越的问题,这导致 Java 如今依然流行。

michaelFu

50

michaelFu      2025 年 10 月 25 日

到处运行的优势在新语言前面没有优势,但是庞大的生态、从业人员以及比较统一的业内实践是最大的优势

LieEar

51

LieEar      2025 年 10 月 25 日

我觉得没有了,现在都是 docker ,谁还管环境。

nebkad

52

nebkad      2025 年 10 月 25 日

先说一个,我不太相信 JVM 能提供手游客户端的运行环境。
如果有,请出来打我脸。
否则,Java 早就不是一次编译到处运行,只是一句过时的宣传语而已。

shijingshijing

54

shijingshijing      2025 年 10 月 25 日

@hronro 假如时间倒流,当初 JAVA 选择和各大操作系统厂商合作,直接在 OS 里内置 JRE ,用户直接下载 JAR 包就能运行,那这种方式可能还有点意义
----------------------------------
你说的是不是.Net 🤣

longlonglanguage

55

longlonglanguage      2025 年 10 月 25 日

我一直有个疑惑,凭啥他能夸下海口说一次编译到处运行?程序里用了 win 的 api ,编译器可以自动转义成 linux 的?他所说的到处运行,应该是跨平台的意思吧。既,我这个编程语言可以在不同的平台上运行,而不是编写的脚本可以在任意平台运行,如果真的可以,那如今就不会 Electron 浏览器套壳盛行了,而是套 java 壳了。

dyingfire

56

dyingfire      2025 年 10 月 25 日

生态才是他的优势,不过现在越来越被蚕食了

WngShhng

59

WngShhng      2025 年 10 月 25 日

我现在在用 compose 写 jvm desktop ,也算是 Java 的一次编译到处运行,问题是包体积太大,且代码没安全性可言

msg7086

60

msg7086      2025 年 10 月 26 日

@longlonglanguage 「程序里用了 win 的 api 」
啊?你 Java 程序内部能用操作系统原生 API ?
如果你是要调用本地类库,那走 JNI 你得自己实现 dll/so 的统一 API 封装。否则在 Java 内部你就只能调用 JVM 面向程序的公开 API ,这些本来就都是跨平台的。

简单来说,我司用的 Linux 服务器,我 Java 是在 Windows 笔记本上写的,我本地编译完拿到 jar 包以后 rsync 到服务器上就能在 Linux 里运行。

clarkethan

61

clarkethan      2025 年 10 月 26 日

跨平台编译现在越来越简单了,Go 、Rust 等新的语言都可以很轻松的跨平台编译,如果 CI/CD 的话就更简单了,服务器端部署的情况下,java 这个优势基本上消弥殆尽了,当然,不熟悉跨平台编译的人觉得难,那就是另一码事了

用一次性跨平台编译配置的时间换 jvm 的开销,我觉得是非常值的,当然,不指 java 其他优势领域

eltria

62

eltria      2025 年 10 月 26 日

还是现在的工程师分工太细,让你自己去搞各个环境,部署啥的最后就没人用乱七八糟的依赖包难搞的语言了

编译出来一个可执行文件就是整个链路最省事的方法, c++ c golang 这些大赢特赢,当然,你说镜像依赖个 jre 也大差不差,但是何必多麻烦一步呢?

liaohongxing

63

liaohongxing      2025 年 10 月 27 日 via Android

@hronro 它这个是 go 不再支持 win7 导致的,它服务器是 windows server 2008 ,还是用的 win7 的 nt 内核,所以要降级使用。正常是不会有问题的,用 linux 就更不会有问题了

jamesjammy061

64

jamesjammy061      2025 年 10 月 27 日

感觉再怎么跨平台,碰到需要调内核 api 最后还得类似条件编译。干脆还不如不跨平台,包封好一点就行了

netabare

65

netabare      2025 年 10 月 27 日 via Android

Java 的 WORA 在现在已经没任何优势甚至是个伪命题了吧。首先如果 JVM 这种虚拟机运行能算一次编译处处运行,那现在的跨平台方案基本上都能算一次编译处处运行,甚至 React Native 、Flutter ,更不用说.NET 了。

那如果从编译产物是原生二进制的角度讲,Java 也没啥 cross compile 的能力吧?

而且这种带个虚拟机来一次编译处处运行的代价是啥呢? Java SDK 屏蔽了操作系统层面的操作,但如果需要调用平台特定的接口怎么办?走 JNI 那套恶心得要死的写法?

wangtian2020

66

wangtian2020      2025 年 10 月 27 日

java 全靠学院派(学校和培训班)发展,实际上整个群体都没创新能力,json 解析都解不过来

layxy

67

layxy      2025 年 10 月 27 日

@hronro 曾经 java 是有机会的,只是被 sun 公司拒绝了,后来又想舔回来,结果巨硬搞了个 C#

xiaomushen

69

xiaomushen      2025 年 10 月 27 日

@SGL 不一定,ARM 架构的,OpenJDK 完全可以用(或者华为提供的,玄学优化的 arm 版本);龙芯之类的小众架构,厂商会提供 OpenJDK

laminux29

70

laminux29      2025 年 10 月 27 日

Java 优势巨大,但不是一次编译到处运行,而是传统项目与主流项目的开发,因 Java 成熟的配套环境,选型阶段几乎可以无脑选 Java ;公司在招人方面,招 Java 工程师的风险也比其他语言低一些。

dog82

72

dog82      2025 年 10 月 27 日

go 的交叉编译,原生支持多平台,而且不要 jvm 层

higker

73

higker      2025 年 10 月 27 日

@dog82 graalvm 的 native-image 也在解决这个问题,也是编译为 native-code 来执行。

higker

75

higker      2025 年 10 月 27 日

@joshuacavell 赞成我写过 Go JS ( ES6 ) Rust ,C# 很早也搞过,C# 很多设计就不错,但是以前不开源,也不能跨平台错失发展计划,我认为 Java 算是综合能力不错的,还有就是库和轮子的生态。

Aresxue

77

Aresxue      2025 年 10 月 28 日

云原生基本抹平了这个优势,非云环境下还有点用,不过现在也不知道非互联网的传统 IT 行业现在有多少非云环境,互联网云原生基本上是全覆盖了。但字节码依旧是非常优秀的一个设计,最重要的一个场景是性能优化,包括编译时做内联、逃逸分析、死代码消除、尾递归优化等等,还可以在运行时将热点字节码编译成本地机器码,以 HotSpot 为例,它是当前最成熟、最全面的生产级编译器之一,20 多年的工程积累是非常恐怖。除此之外,反射和元编程也是以字节码为基石的,是 Java 现在生态这么繁荣的一个重要原因,还有各种 Java agent 体现了零入侵的代码美学。