我的用法:
我想在 Ubuntu 16.04 上安装 Java。我不做任何繁重的编码工作,但我很好奇 Oracle 和 OpenJDK 之间有什么区别
我运行来安装的内容
当我运行命令时
sudo update-alternatives --config java
正如这里建议的:https://poweruphosting.com/blog/install-java-ubuntu/,我收到一条提示:
There are 2 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
0 /usr/lib/jvm/java-8-oracle/jre/bin/java 1081 auto mode
1 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1081 manual mode
* 2 /usr/lib/jvm/java-8-oracle/jre/bin/java 1081 manual mode
Press <enter> to keep the current choice[*], or type selection number: 1
我尝试回答这个问题:
这里 (OpenJDK 与适用于 Android Studio 的 Oracle JDK)表明 OpenJDK 是
- 更容易调试,但是
- 慢点
有没有 Java 的忠实用户愿意发表一下意见?谢谢!
答案1
首先,JDK 由 Java 运行时环境 (JRE) 和各种可帮助您编译和调试 Java 代码的工具组成。JRE 是独立的,不包含任何编译或调试工具。因此,如果您不从事开发工作,只想运行用 Java 编写的应用程序,那么您只需安装 JRE 即可。
Oracle JDK 由 Oracle 维护(令人惊讶),而 OpenJDK 是一个开源实现,得到了开放 Java 社区和 Oracle 的贡献。据我所知,Oracle JDK 的构建过程是从 OpenJDK 源代码构建的。因此,由于 Oracle JDK 的源代码来自 OpenJDK,因此 Oracle JDK 和 OpenJDK 之间没有重大的技术差异。我的理解是,所有开发和错误修复都在 OpenJDK 中进行,然后传播到 Oracle JDK。
我引用一下这回答这里:
在 Java 6 时代,两者曾存在很大差异,OpenJDK 运行速度慢,支持少。但如今,除了 java-web-plugin(被社区重写,命名为 icedtea-web)之外,它们已经完全一样了。两个版本都不算“错误”。
仍然有人声称 OpenJDK 比 Oracle 的 JDK 差,但这已经成为一种神话。
有人声称他们在运行 OpenJDK 时遇到了问题,但在切换到 Oracle JDK 或反之时问题得到了解决。但这些说法通常无法得到证实。考虑到 Oracle JDK 的源代码来自 OpenJDK,这些说法始终难以证实。
另外,顺便提一下,只要遵循 Java 语言规范,您就可以创建自己的 JDK。许多公司(例如 Twitter)都有自己的 JDK。当然,在执行此操作之前,您必须遵循某些流程(我目前不知道)。