コンテンツにスキップ

「OpenJDK」の版間の差分

出典: フリー百科事典『ウィキペディア(Wikipedia)』
削除された内容 追加された内容
英語版 OpenJDK の翻訳により「OpenJDKのビルド」セクションを追加
png -> svg
2行目: 2行目:
| name = OpenJDK
| name = OpenJDK
| developer = [[オラクル (企業)|オラクル]]
| developer = [[オラクル (企業)|オラクル]]
| logo = [[画像:OpenJDK logo.png|100px]]
| logo = [[画像:OpenJDK logo.svg|100px]]
| latest release version = 12
| latest release version = 12
| latest release date = {{Start date and age|df=yes|2019|03|19}}
| latest release date = {{Start date and age|df=yes|2019|03|19}}

2019年5月27日 (月) 12:38時点における版

OpenJDK
開発元 オラクル
最新版
12 / 2019年3月19日 (5年前) (2019-03-19)
最新評価版 JDK 24 Build 19[1] - 2024年10月10日 (35日前) (2024-10-10) [±]
リポジトリ ウィキデータを編集
プログラミング
言語
C++Java
対応OS クロスプラットフォーム
種別 Javaプラットフォーム
ライセンス GNU GPL+リンク例外
公式サイト 公式ウェブサイト
テンプレートを表示

OpenJDK (Open Java Development Kit) は、プログラミング言語Javaフリーかつオープンソースの実装である[2]。2006年、サン・マイクロシステムズが始めたもので、GPLリンク例外つきの GNU General Public License (GNU GPL) でライセンスされている。リンク例外つきとしたのは、Javaクラスライブラリのライブラリとしての使用をGPLライセンスの適用外とするためである。OpenJDKはJava SE 7以降の公式リファレンス実装とされている[3]

コンポーネント

OpenJDKプロジェクトは、いくつかのコンポーネントからなる。主なコンポーネントとして、HotSpotJava仮想マシン)、JavaクラスライブラリjavacJavaコンパイラ)がある。

オラクルのJavaの一部であるウェブブラウザ用プラグインと Web Start はOpenJDKには含まれない。サンはかつてそれらのコンポーネントもオープンソース化したいとしていたが、実際にはサンもオラクルもオープンソース化していない[4]。今のところ利用可能なフリーのプラグインと Web Start の実装は、IcedTeaが提供しているものだけである。

サポートしているJDKのバージョン

OpenJDKが当初ベースとしていたのは JDK 7 のみだった[5]

Javaのバージョンに合わせて、以下のような別々のOpenJDKプロジェクトが存在する。

  • JDK 11
  • JDK 10
  • OpenJDK 9 プロジェクト - JDK 9 のベースとなるもの
  • OpenJDK 8 Update プロジェクト - JDK 8 をベースとし,既存のリリースを更新するもの
  • OpenJDK 8 プロジェクト - JDK 8 のベースとなるもの
  • OpenJDK 7 Update プロジェクト - JDK 7 をベースとし、既存のリリースを更新するもの
  • OpenJDK 7 プロジェクト - JDK 7 のベースとなるもの
  • OpenJDK 6 プロジェクト - JDK 7 をベースとし、Java 6 のオープンソース版を提供しようとするもの[6][7]

OpenJDKのビルド

Oracleが、長期サポートリリース英語版(LTS)に対するセキュリティアップデートをパーミッシブ・ライセンスでリリースするのを中止したため、他のグループらがパーミッシブなライセンスのビルドを提供し始めている[8][9]

ビルド パーミッシブ Pure 商用サポート LTS
AdoptOpenJDK / IBM / JClarity Yes Optional Yes Yes
Amazon Corretto Yes No Yes Yes
Azul Zulu Yes No Yes Yes
BellSoft Liberica JDK Yes No Yes Yes
ojdkbuild Yes Yes No Yes
Oracle Java SE No No Yes Yes
Oracle OpenJDK Yes Yes No No
Red Hat for Windows[10] Yes No Yes Yes
SapMachine Yes No Yes Yes

IcedTeaとの関係

OpenJDKをFedoraや他のフリーGNU/Linuxディストリビューションにバンドルするには、フリーソフトウェアのコンポーネントのみでビルド可能になっている必要がある。Javaクラスライブラリの一部にはそうでないコンポーネントがあり、ビルドに際してはデフォルトでサンの製品版JDKを使うようになっており、フリーソフトウェアのみでのビルドは不可能だった。これを解決するため2007年6月にレッドハットが開始したプロジェクトがIcedTeaである[11]。OpenJDKとGNU Classpathの混合によってOpenJDKのブートストラップ問題を解決し、プロプライエタリの部分をClasspathのコードで置換するというプロジェクトである[12][13]

2007年11月5日、レッドハットは Sun Contributor Agreement と OpenJDK Community TCK License の両方に署名した[14]。この合意の第一の利点の1つはIcedTeaプロジェクトとの緊密な連携であり、Linux環境における技術をLinuxディストリビューションFedoraとアプリケーションサーバJBossから導入することであった。IcedTeaはOpenJDKプロジェクトに残っていた少数のプロプライエタリの部分の代替となるフリーソフトウェアを提供した。

2008年5月、Fedora 9[15][16]Ubuntu 8.04[17]というディストリビューションは完全にフリーかつオープンソースのコードをベースとした IcedTea 6 を採用した[18]。IcedTea 6は、OpenJDK 7ではなくOpenJDK 6のソースに基づいたバージョンである。Fedoraでは、パッケージ名としてOpenJDKという名称を初めて使った[19][15]Ubuntuでは当初IcedTea7パッケージを採用していたが[20]、後にIcedTea6に変更した。DebianでもIcedTea6パッケージが作成され、lenny (Debian 5.0) に含まれるようになった。2008年7月12日、DebianはOpenJDK 6を不安定版として受理し[21][22]、その後安定版とした[23]。OpenJDKは他にOpenSUSE[24]Red Hat Enterprise Linux (RHEL)、RHELからの派生であるCentOSなどでも利用可能となっている[25]

2008年6月、レッドハットは Fedora 9 上で IcedTea 6 を使ってビルドされたOpenJDKパッケージのバイナリが Technology Compatibility Kit のテストに合格し、Java 6 実装と完全互換であると主張できるようになったと発表した[26]。2009年7月、Ubuntu 9.04 でビルドされた IcedTea6 のバイナリが Java SE 6 のTCK互換性テストに全て合格した[27]

2008年8月以降、OpenJDK 7は Mac OS XBSD系OSでも動作可能となった[28]

歴史

サンの約束と最初のリリース

JavaOne 2006 にて、サンはJavaをオープンソースにする意志があると発表し[29][30]、2006年10月25日の Oracle OpenWorld にてジョナサン・シュワルツJavaプラットフォーム中核部のオープンソース化を30から60日以内に発表するだろうと述べた[31]

2006年11月13日、サンはJava仮想マシンであるHotSpotとJavaコンパイラを GNU General Public Licenseフリーソフトウェアとしてリリースし、JDKの残りの部分(Javaランタイム環境など)も2007年3月までにGPLでリリースする予定だが、「サン自身がGPLで公開する権利を有していない少数のコンポーネントは除く」とした[32]。フリーソフトウェアの唱道者リチャード・ストールマンはこれについて、彼がそれまでJavaとJavaで書かれてきたプログラムについて主張してきた「Javaトラップ」というベンダロックインの終りだとした[33]

クラスライブラリのリリース

Java Development Kit (JDK) のほとんどの部分をフリーかつオープンソースのものとして2007年前半にリリースするという約束に続き、サンは2007年5月8日、サードパーティが著作権を持っていてサンがGPLで公開できない部分を除いたJavaクラスライブラリのソースコードをGPLでリリースした[34]。除外された部分の一覧には、Javaのグラフィカルユーザインタフェース (GUI) の重要なコンポーネントもいくつか含まれていた。サンは残りのプロプライエタリのコンポーネントも代替実装で置換し、クラスライブラリを完全にフリーにする計画だとした。

2007年5月にリリースされた時点で、OpenJDKのクラスライブラリの4%がプロプライエタリだった[35]。2008年5月にOpenJDK 6が登場した時点では、それが1%未満になっていて(残ったのはSNMP実装[36]であり、Java仕様の一部ではない)[15]、OpenJDKをバイナリ部分なしにビルドできるようになった[36]。そして2009年4月、OpenJDK 7のb53の一部として問題の部分を除いてビルドできるようになった[37]

これは、サン・マイクロシステムズとOpenJDKコミュニティの努力の成果である。残存部分[38]は、FLOSSとしてリリースされたり、代替実装で置換されたりした。2010年12月、全ての残存部分がオープンソースで置換され、JDK全体が完全にオープンソースとなった[39]

コミュニティによる改良

2007年11月5日、レッドハットはサンとの合意を発表し、Sun Contributor Agreement(サンによるフリーかつオープンソースのソフトウェアプロジェクトにレッドハットの全技術者が参加するという契約)と OpenJDK Community Technology Compatibility Kit (TCK) License Agreement(OpenJDKに基づいたプロジェクトが Java SE 6 仕様に準拠していることを確認するテストスイートへのアクセス権を与える契約)に署名した[40]

また2007年11月、Porters Group が結成され[41]、OpenJDKを異なるプロセッサアーキテクチャオペレーティングシステムに移植する作業を開始。BSD系への移植プロジェクト[42]は Kurt Miller と Greg Lewis が主導し、Mac OS X への移植プロジェクト SoyLatte は Landon Fuller が主導した[43]。2008年1月、彼らは Porters Group 経由でOpenJDKへの参加に関心を示し、メーリングリストで議論を開始した。他に Bryan Varner 率いるHaikuへのJava移植チームも結成された[44]

2007年12月、サンはOpenJDKのバージョン管理TeamWareからMercurialに移行させ、オープンソースコミュニティへのリリース工程を進めた[45][46]

OpenJDKでは寄贈コードを受け入れる際にかなり厳密な手続きをとっていた。寄贈コードは必ず別のOpenJDKコミッターがレビューし、寄贈者は Sun/Oracle Contributor Agreement (SCA/OCA[47]) に合意しなければならない。さらにバグが修正されていることを示すためにjtreg英語版[48]テストも行うのが好ましい。2008年9月まで、外部から提供されたパッチをコードベースにコミットするのはサンの技術者のみが行っていて[49]、かなり対応が遅かった[50]。その後改善され、単純なパッチやOpenJDK 7からOpenJDK 6へのバックポートは数時間でコミットされるようになった[51]

IBM、アップル、SAPの参加

2010年10月11日、Apache Harmony プロジェクトを推進してきたIBMオラクルのOpenJDKに参加表明し、事実上HarmonyからOpenJDKへ移行することを決めた[52][53]。IBMでLinuxおよびオープンソース関連を指揮する Bob Sutor はブログで「IBMは Apache Harmony からOpenJDKへと開発の重心をシフトさせるだろう」と記した[54]

2010年11月12日、(3週間前に自身のJavaランタイム環境の移植版に問題があるとした[55]アップルはオラクルと共に Mac OS X 向けOpenJDKプロジェクトを発表した。アップルは主要コンポーネント、ツール、テクノロジーを Mac OS X 上の Java SE 7 実装向けに提供するとし、その中にはHotSpotベースのJava仮想マシン(32ビットと64ビット版)、クラスライブラリ、新たなグラフィカルクライアントのためのネットワークプロトコルスタックが含まれるとした[56]

2011年1月11日、OpenJDKにて Mac OS X 向け移植プロジェクトが結成され、アップルから初のコード寄贈が行われた。Mac OS X 版は当初BSD移植版をベースにしていた[57]

2011年7月、SAP AG がOpenJDKプロジェクトへの公式参加を発表した[58]

脚注

  1. ^ "OpenJDK JDK 24 Early-Access Builds"”. 2024年10月16日閲覧。
  2. ^ OpenJDK Legal Documents”. Sun Microsystems. 2012年11月8日閲覧。
  3. ^ JDK Builds from Oracle
  4. ^ Darcy, Joe (June 8, 2009). “OpenJDK and the new plugin”. 2009年9月5日閲覧。
  5. ^ Didn't you promise to open source both JDK 6 and JDK 7 last November? What happened to JDK 6?”. Sun Microsystems. 2007年10月12日時点のオリジナルよりアーカイブ。2007年10月14日閲覧。 “Sun did make that promise, and we plan to keep it. But in the six months since the November 2006 announcement, it has become clear that doing this is far more complex than just changing the license and publishing the source code.
  6. ^ http://weblogs.java.net/blog/robogeek/archive/2009/01/it_will_be_open.html
  7. ^ Darcy, Joe (February 11, 2008). “The code is coming! The code is coming!”. 2008年2月16日閲覧。 “At Sun we're making final preparations for the first source release for the OpenJDK 6 project. We plan to release a tarball of the source, along with matching binary plugs, by February 15, 2008.
  8. ^ Time to look beyond Oracle's JDK”. Template:Cite webの呼び出しエラー:引数 accessdate は必須です。
  9. ^ Difference between OpenJDK and AdoptOpenJDK
  10. ^ Product Documentation for Red Hat OpenJDK for Windows
  11. ^ Fitzsimmons, Thomas (June 8, 2007). “Credits”. 2007年6月8日閲覧。
  12. ^ Andrew, Haley (June 7, 2007). “Experimental Build Repository at icedtea.classpath.org”. 2007年6月9日閲覧。
  13. ^ Mark, Wielaard (June 7, 2007). “Experimental Build Repository at icedtea.classpath.org”. 2007年6月9日閲覧。
  14. ^ Red Hat and Sun Collaborate to Advance Open Source Java Technology”. Red Hat (November 5, 2007). 2007年11月6日閲覧。
  15. ^ a b c Wade, Karsten (March 13, 2008). “OpenJDK in Fedora 9!”. redhatmagazine.com. 2008年4月5日閲覧。 “Thomas Fitzsimmons updated the Fedora 9 release notes source pages to reflect that Fedora 9 would ship with OpenJDK 6 instead of the IcedTea implementation of OpenJDK 7. Fedora 9 (Sulphur) is due to release in May 2008.
  16. ^ Open Source Java Technology Debuts In GNU/Linux Distributions”. Sun Microsystems. 2008年5月3日時点のオリジナルよりアーカイブ。2008年5月2日閲覧。
  17. ^ openjdk-6 in Ubuntu”. 2008年4月19日閲覧。
  18. ^ Reinhold, Mark (April 24, 2008). “There’s not a moment to lose!”. 2008年4月29日時点のオリジナルよりアーカイブ。2008年4月19日閲覧。
  19. ^ OpenJDK trademark agreement
  20. ^ icedtea-java7 in Ubuntu”. 2008年4月19日閲覧。
  21. ^ Topic, Dalibor (July 14, 2008). “QotD: Debian Overview of openjdk-6 source package”. 2008年7月15日閲覧。
  22. ^ Overview of openjdk-6 source package”. debian.org. 2008年7月15日閲覧。
  23. ^ Package: openjdk-6-jdk”. debian.org (February 14, 2009). 2009年2月16日閲覧。
  24. ^ Additional package repositories”. SUSE LLC. 2019年3月3日閲覧。
  25. ^ How to download and install prebuilt OpenJDK packages”. 2010年3月3日閲覧。
  26. ^ Sharples, Rich (June 19, 2008). “Java is finally Free and Open”. 2012年11月9日閲覧。
  27. ^ Announcing OpenJDK 6 Certification for Ubuntu 9.04 (jaunty)
  28. ^ Fuller, Landon (August 19, 2008). “SoyLatte, Meet OpenJDK: OpenJDK 7 for Mac OS X”. 2008年8月22日閲覧。
  29. ^ Schwartz, Jonathan (May 23, 2006). “Busy Week...”. Sun Microsystems. 2006年6月12日時点のオリジナルよりアーカイブ。2007年5月9日閲覧。
  30. ^ (OGG Theora) Sun Opens Java, Sun Microsystems, http://mediacast.sun.com/share/tmarble/Sun_Opens_Java.ogg [リンク切れ]
  31. ^ Sun CEO sets open source Java time frame - Announcement set for 30 to 60 days”. InfoWorld (2006年10月25日). 2011年12月22日閲覧。
  32. ^ Sun Opens Java”. Sun Microsystems (November 13, 2006). April 21, 2007時点のオリジナルよりアーカイブ。2007年5月9日閲覧。
  33. ^ Stallman, Richard. “Free But Shackled—The Java Trap”. 2007年12月4日閲覧。
  34. ^ Open JDK is here!”. Sun Microsystems (May 8, 2007). 2007年5月9日閲覧。
  35. ^ Fitzsimmons, Thomas (May 18, 2007). “Plans for OpenJDK”. 2007年5月22日閲覧。
  36. ^ a b OpenJDK 6 b10 source posted” (May 30, 2008). 2008年6月1日閲覧。
  37. ^ Changes in OpenJDK7 b53” (April 2, 2009). 2009年9月5日閲覧。
  38. ^ Herron, David (October 4, 2007). “Plans for OpenJDK”. 2007年10月9日閲覧。
  39. ^ Kelly O'Hair (December 2010). “OpenJDK7 and OpenJDK6 Binary Plugs Logic Removed”. Oracle Corporation. 2011年11月25日閲覧。
  40. ^ Broad contributor agreement and TCK License pave way for a fully compatible, free and open source Java Development Kit for Red Hat Enterprise Linux
  41. ^ Porters Group
  42. ^ http://www.eyesbeyond.com/freebsddom/java/jdk16.html
  43. ^ http://landonf.bikemonkey.org/code/macosx/
  44. ^ New java for haiku team formed
  45. ^ James Gosling (2006). "James Gosling on Open Sourcing Sun's Java Platform Implementations, Part 1" (Interview). Interviewed by Robert Eckstein. {{cite interview}}: 不明な引数|month=は無視されます。 (説明)
  46. ^ O'Hair, Kelly (December 12, 2007), Mercurial OpenJDK Questions, オリジナルの2008年2月14日時点におけるアーカイブ。, http://web.archive.org/web/20080214085410/http://blogs.sun.com/kto/entry/mercurial_openjdk_questions 
  47. ^ Sun Microsystems Inc. Contributor Agreement”. 2012年11月9日閲覧。
  48. ^ Regression Test Harness for the OpenJDK platform: jtreg”. 2008年8月26日閲覧。
  49. ^ Kennke, Roman (September 29, 2008). “A small step for me”. 2008年10月3日時点のオリジナルよりアーカイブ。2008年10月19日閲覧。
  50. ^ Tripp, Andy (July 16, 2007). “Classpath hackers frustrated with slow OpenJDK process”. 2008年4月20日閲覧。
  51. ^ Darcy, Joe (June 10, 2010). “Backporting changeset from 7 to 6 for bugfix”. 2012年11月9日閲覧。
  52. ^ Oracle and IBM Collaborate to Accelerate Java Innovation Through OpenJDK”. Oracle Corporation. 2010年10月22日閲覧。
  53. ^ Ryan Paul. “Java wars: IBM joins OpenJDK as Oracle shuns Apache Harmony”. Ars Technica. 2010年10月22日閲覧。
  54. ^ Bob Sutor. “IBM joins the OpenJDK community, will help unify open source Java efforts”. 2010年10月22日閲覧。 “IBM will be shifting its development effort from the Apache Project Harmony to OpenJDK. For others who wish to do the same, we’ll work together to make the transition as easy as possible. IBM will still be vigorously involved in other Apache projects.
  55. ^ Java for Mac OS X 10.6 Update 3 and 10.5 Update 8 Release Notes” (October 20, 2010). 2012年11月9日閲覧。
  56. ^ Oracle and Apple Announce OpenJDK Project for Mac OS X”. Business Wire (2010年11月12日). 2010年11月12日閲覧。 “Oracle and Apple today announced the OpenJDK project for Mac OS X. Apple will contribute most of the key components, tools and technology required for a Java SE 7 implementation on Mac OS X, including a 32-bit and 64-bit HotSpot-based Java virtual machine, class libraries, a networking stack and the foundation for a new graphical client. OpenJDK will make Apple’s Java technology available to open source developers so they can access and contribute to the effort.
  57. ^ Mike Swingler(アップル) (2011年1月11日). “Announcing: OpenJDK for Mac OS X source repository, mailing list, project home”. OpenJDK. 2010年11月12日閲覧。 “I'm very happy to let you know that today we made the first public contribution of code to the OpenJDK project for Mac OS X. This initial contribution builds on the hard work of the BSD port, and initially has the same functionality. Today's contribution simply modifies the build process to create universal binary, and produces a .jdk bundle which is recognized by Java Preferences and the JVM detection logic in Mac OS X.
  58. ^ Volker Simonis (SAP AG) (2011年7月14日). “SAP joins the OpenJDK”. OpenJDK. 2010年11月12日閲覧。 “I'm really happy that as of today, SAP has signed the Oracle Contributor Agreement (OCA). This means that with immediate effect the SAP JVM developers can officially join the discussions on the various OpenJDK mailing lists and contribute patches and enhancements to the project.

関連項目

外部リンク