2017-11-11 245 views
6

我以某種方式理解Oracle JDK和Open JDK之間的差異。但我找不到使用Open JDK的理由,因爲Oracle JDK已經擁有了所需的一切,有時甚至比Open JDK更快。使用OpenJDK的原因是什麼?

某人應該在什麼情況下使用Open JDK?僅僅是爲了法律問題,如果是的話那麼什麼問題呢?正如我一直在使用Oracle JDK開發我的所有項目一樣。

+0

沒有區別了。 [OpenJDK自Java 9 GA以來是OracleJDK](https://blogs.oracle.com/java-platform-group/faster-and-easier-use-and-redistribution-of-java-se)。 –

+0

@BoristheSpider,非常感謝你的文章。我瞭解Oracle試圖消除技術差異。但是我仍然不明白什麼情況會阻止我使用Oracle JDK?或者使用Open JDK代替Oracle JDK的原因。如果他們提供相同的功能並且完全相同,那麼分離實現的原因是什麼?Oracle可以使其代碼開放並可用。 –

+0

他們已經完成了。這就是文章所說的。 –

回答

6

眼下,原因的OpenJDK和Oracle JDK之間進行選擇包括:建立的

  • 可用性/安裝特定的平臺。例如,上次我檢查了Debian/Ubuntu的「.deb」格式沒有Oracle JDK發行版。 OpenJDK沒有爲Windows構建。

  • Oracle JDK具有一些商業功能,可以由付費人員啓用。它們不在OpenJDK上。

  • Oracle JDK有一個惱人的點擊牌照。如果您嘗試自動部署,這是一個痛苦;例如雲虛擬機。相比之下,Linux上的OpenJDK(至少)可以使用平臺的包管理器進行安裝和更新。

  • 如果您想爲OpenJDK提供商業支持,可能會有問題。

有甲骨文的JDK和OpenJDK的之間沒有實質性許可證差別,如果你只是打算使用該軟件。 (對於Oracle JDK,二進制再分發有一些限制,但它們是關於發送非標準或精簡版Java平臺的。)

將來,根據這一點,這些差異中的一部分將消失博客頁面:

2

OpenJDK緊密集成了分發更新過程。例如,在Fedora上,這意味着你根本就沒有啓動第三方倉庫運行

dnf update 

,你會得到最新版本的OpenJDK與所有相關補丁。

OpenJDK由分發供應商在此特定分發版上進行測試。 Oracle有不同的參考平臺來測試OpenJDK。在Fedora的情況下,用Java編寫的軟件使用發行版提供的OpenJDK版本進行測試,而該軟件與Oracle JDK的組合則收到的測試更少。

Oracle還將其Java下載與其他軟件(如瀏覽器工具欄,性能測量和監視工具)捆綁在一起。

+1

對不起,也許對其他問題顯而易見。但是,「分發更新過程」是什麼意思?你在說什麼分佈? 「分銷商」是什麼意思?所有在Open JDK上工作的人? –

+0

人們通常使用Debian/Red Hat/SuSE/Ubuntu提供的OpenJDK。如果你在Windows上,所有這些可能沒有什麼意義。 (你的問題沒有說這個。) –

+0

我使用Fedora。爲什麼它對Windows沒有意義? Windows對此有特殊權利嗎?我甚至不知道我錯過了什麼。 –