我已经使用OpenJDK很多年了,最初是用于它没有问题的小项目.但是,自从我开始在大型玩具中使用它以来,我开始注意到随机/未知的致命错误和崩溃(使用H.264编解码器等),在那之前,使用OpenJDK导致的系统崩溃+致命错误是一场噩梦.

在对OpenJDK感到完全沮丧和厌倦之后,我最终决定切换到Oracle JDK 7.从那时起,我的致命错误/崩溃消失了.我仍在进行跟踪,以查看是否发生了这种情况,但我从未遇到过这些系统崩溃.

现在我想知道,如果OpenJDK只是一个许可证问题,为什么它不可能保持稳定?

为什么OpenJDK在其稳定的版本中保持漏洞的存在,但声称它是Oracle JDK的克隆(事实并非如此),那么从技术上讲,OpenJDK与Oracle JDK的真正区别是什么?(只有快速功能可用性?还是专注于 solidity /可靠性?)

推荐答案

技术差异是每一个目标的结果(OpenJDK是对社区开放的参考实现,而Oracle是商业实现)

它们在Java API中拥有"几乎"相同的类代码;但虚拟机本身的代码实际上是不同的,在库方面,OpenJDK倾向于使用开放库,而Oracle倾向于使用封闭库;例如,the font library.

Linux相关问答推荐

无法在Raspberry PI 3 Model B上分配256TB的虚拟内存

排除最大FIFO大小故障

如何根据具体情况打印两行输出?

在PowerShell for Linux上,打印出的maven命令还有其他字符

通过shell 脚本基于AM/PM对日期时间字段进行排序

如何检测文件系统是否支持权限?

"‘operator<<’匹配失败(可能是因为我的C++/GCC版本问题)"

如何使用 gdb 调试堆栈分段错误?

erlang 格式的 utf8 变为 \x(反斜杠 x)ascii 编码

Linux PREEMPT_RT:SCHED_OTHER 的性能优于 SCHED_FIFO.为什么?

用于替换 struct 文档中文本的 Bash 脚本

什么命令用于在linux中创建或修改具有指定文件大小的多个文件

awk/sed 命令仅在模式 2 匹配时打印模式 1

使用打印命令 Select 子域

Linux:在目录下的文件列表中搜索特定单词

如何使用 Ansible 等待服务器重启?

如何获取/使用 LibUUID?

判断环境变量是否已经设置

Anaconda 安装后,conda 命令失败并显示ImportError: no module named conda.cli

Bash:在文件中的特定位置插入一行