2014-09-10 102 views
4

爲什麼我們有兩個版本的Java?爲什麼我們有兩個版本的Java?

  1. 來自Oracle的jdk和來自OpenJDK的jdk。
  2. 爲什麼它是 OpenJDK僅適用於Linux?
  3. 而在維基百科上,我發現 Java是開源的。但是,我發現 ORACLE JDK內的版權信息說一切都受到限制?
+3

這很複雜。重要的是要知道,只有一個Java規範。你提到的是它的不同實現,標準的Oracle JDK和OpenJDK不是唯一的這種實現。但基本上,當Sun(原Java平臺的開發人員)被Oracle接管時,舊的Sun實現分成兩部分:其中一個成爲OpenJDK,另一個成爲Oracle。 – biziclop 2014-09-10 15:23:37

+0

謝謝biziclop。 – 2014-09-10 15:29:16

+1

這個線程中的所有「信息」從哪裏來? Sun創建OpenJDK是爲了響應Java社區的願望,放棄標準JDK的封閉源代碼性質。所有你需要做的是去實際的OpenJDK網站和閱讀! http://openjdk.java.net/ – Gimby 2014-09-10 15:41:09

回答

5
  1. 打開JDK正試圖通過給你的選擇(可以使用涼的OpenJDK JVM或主流甲骨文之一)

  2. 自由推倒重來如果事情是很酷很顯然,這只是爲Linux的

  3. 這個問題是出SO範圍,除了我不知道自己...

+4

+ 1,我喜歡第二點! – 2014-09-10 15:25:12

+1

巨魔發現。但同意:) +1 – 2014-09-10 15:25:29

+2

它專門與Linux捆綁在一起,因爲Fedora和其他發行版要求所有捆綁軟件都是開放且免費的。商業化的Oracle JDK實現不允許這樣做。 – user2254180 2014-09-10 15:36:14

2

釷有很多java發行版。 Oracle JDK只是參考之一,但其他一些像Open JDK存在。例如,IBM擁有自己的產品。雖然他們都擁有強制性功能,但每個功能都超出了這個範圍,並實施了自己的專有功能。部分Oracle JDK是而不是開放源碼,它需要嵌入式設備的授權,這就是Open JDK存在的原因 - 提供完全免費的Java實現。現在,Java在「規範」中是開源的,大部分Oracle JDK也是如此。只要他們通過了Oracle的兼容性測試,其他公司就可以自行實施。儘管如此,Oracle擁有Java商標並且我認爲它具有對其他實現進行認證的能力。與Google和他們的Java實現(與現在已經停止的Apache Harmony一樣)的糾紛存在於某處。 至於Windows上的Open JDK,可以通過構建源代碼來完成(例如this guy here)。二進制文件不存在可能是因爲沒有需求。只有Linux纔對專有軟件施加限制。

相關問題