虽然我还不是真正的Java开发人员,但我觉得我现在应该知道这一点,但我仍然很困惑。我的问题有两个部分:
所谓的(如我所见)“Sun JDK”,OpenJDK和GCJ 之间有什么区别?
在不同的时间,我已经看到了下面的每一个被抛出,使得理解哪些版本号实际适用于什么令人困惑。有人可以帮我解决这个问题吗?
注意:我确实理解JDK(Java Development Kit)和Java Runtime Environment之间的区别。虽然我知道JVM是什么/做什么,但我并不完全清楚JRE和JVM之间的区别。
答案 0 :(得分:10)
详情项目1 http://en.wikipedia.org/wiki/OpenJDK https://stackoverflow.com/questions/1977238/why-should-i-use-the-sun-jdk-over-the-openjdk-or-vice-versa
http://en.wikipedia.org/wiki/GNU_Compiler_for_Java
GCJ如何与Sun JDK / OpenJDK相关? 我没有直接的关系。 GCJ是一个单独的项目。 使用一个JDK而不是另一个JDK有什么优点? 如果重新分发Sun JDK,则可能会出现许可问题。我个人更加信任Sun JDK,因为它的稳定性。 OpenJDK不是Sun项目吗?是的,不是。这是一个社区项目。
答案 1 :(得分:8)
Java 6和Java 1.6是相同的。最初Java被命名为Java 1.X,但随着时间的推移,Sun营销人员发现,如果他们放弃“1”,它将更好地表明所做的重大改进。部分。第一个版本是Java 1.5,它以Java 5的形式销售。
JRE 6是Java 6的消费者发行版。可以从http://java.com轻松下载。
JDK 6是Java 6的开发人员发行版。它包含像编译器这样的工具,支持比默认JRE更多的文化。需要从http://javasoft.com下载。
JVM 11.0是Oracle JRE / JDK中的Java“解释器”的版本(其他供应商使用不同的数字)。这类似于说Windows Vista实际上是Windows 6.0.6001。
答案 2 :(得分:3)
Sun多年来have made some changes to the naming conventions用于编程语言。最初你有jdk1.1等等。在jdk1.2,他们决定将其更改为Java 2.所以你会看到一些关于Java 2的旧书。
然后出于一些神秘的原因,它回到了jdk1.3然后jdk1.4。当jdk1.5发布时,他们再次努力改变名称。所以我们有Java 5.因为他们决定坚持这一点,你有以下几点:
jdk1.5 = Java 5
jdk1.6 = Java 6
jdk1.7 = Java 7
和(也许)等等。
希望这能解释其中的一部分。在你的问题Java6 == Java 1.6 == JDK 6 == JDK 1.6。
至于JVM与JRE。 JRE包含JVM以及类库和运行Java程序所需的任何其他工具。 JVM只是解释字节码并在主机上执行它的程序。
答案 3 :(得分:3)
JVM和JRE之间的区别。严格地说,JVM只是解释Java字节码的机器,而JRE还包含所有标准类库,资源文件,dll
s(so
s)等等。
答案 4 :(得分:1)
请注意,GCJ不是经过认证的JVM。它是Java项目的GNU类路径,它在GNU许可下具有部分Java兼容性。除非您确定它符合您的需求并且您有理由不能使用其他完整的Java实现,否则您应该避开它。