Javaクラスライブラリ

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索

Javaクラスライブラリ (JCL) はJavaアプリケーションが実行時に呼び出せる動的ロード可能なライブラリ群である。Javaプラットフォームは特定のOSに依存していないので、アプリケーションはOSの持つライブラリなどに依存できない。その代わり、Javaプラットフォームでは現代のOSが一般に提供している機能を含む標準クラスライブラリ群を包括的に提供している。

JCLはJavaプラットフォーム内で次の3つの役割を担っている。

  • 他の標準ライブラリと同様、コンテナクラス群正規表現処理といったよく知られている便利な機能群をプログラマに提供する。
  • ネットワークアクセスやファイルアクセスといったハードウェアやOSに強く依存するタスクへの抽象インタフェースを提供する。
  • 中には、Javaアプリケーションが期待している機能を完備していないプラットフォームも存在する。その場合、欠けている機能をこのライブラリでエミュレートしたり、特定機能の有無をチェックする一貫した方法を提供したりする。

実装と設定[編集]

JCLはほぼ全体がJavaで書かれているが、ハードウェアやOSに直接アクセスする必要のある部分はその限りではない(例えば、入出力ビットマップグラフィックス)。そのようなアクセスを行うクラスでは、一般にOSのAPIへのラッパーとして Java Native Interface を使用している。

JCLのほぼ全体が単一のJavaアーカイブファイル "rt.jar" に格納されており、JREJDKの一部として配布されている。Javaクラスライブラリ (rt.jar) はデフォルトのブートストラップクラスパスに置かれ[1]、アプリケーションが一々クラスパスを指定する必要はない。ランタイムではJCLを探すのにブートストラップクラスローダを使う。

適合[編集]

任意のJava実装は Java Technology Compatibility Kit のコンプライアンステストに合格する必要があり、そこにJCLについてのテストも含まれている。

主な機能[編集]

JCLの機能には、パッケージでカプセル化されたクラス群を塔してアクセスする。

ライセンス[編集]

かつてのライセンス[編集]

OpenJDKがリリースされる以前、JDKは基本的にプロプライエタリなライセンスだった。2006年、サン・マイクロシステムズはJavaをオープンソースにする意思があると発表。2007年前半にJDKのほぼ全部をオープンソースとしてリリースすると約束した。2007年5月8日、サンがオープンソース化する権利を有していない一部を除いたクラスライブラリのソースコードGPLライセンスで公開した[2]。その後は、公開できなかった部分をオープンソース化することが目標となった。

オープンソース化できなかった部分は使わないとしても依存関係があるためにビルドには必須であり、「バイナリプラグ」と呼ばれた[3]。サン(と後にオラクル)はコミュニティの協力も得て、バイナリプラグをオープンソース化したりオープンソースの代替品で置換していった。2008年5月にリリースされた OpenJDK 6 ではオープンソース化できていない部分は1%となっていた[4][5]

2007年5月時点でオープンソース化できていなかった部分(OpenJDK 7 の4%)は次の通りである[6][7]

オープンソースライセンス[編集]

2010年12月、「バイナリプラグ」と呼ばれていた部分は全てオープンソースの代替品で置換され、JDK全体がオープン化された[15]

代替実装[編集]

Javaクラスライブラリの他のフリーソフトウェア実装としては、GNU Classpath がある。他の実装とは異なり、これはクラスライブラリのみを実装しており、多くのフリーなJava実装(ランタイム)、KaffeSableVMJamVM英語版CACAO英語版 などで使われている。

Apache Harmony もクラスライブラリのフリーソフトウェア実装だった。これにはJava仮想マシンJavaコンパイラなども含まれており、Javaスタック全体をフリーソフトウェアで実装することを目的としていた。

脚注[編集]

  1. ^ How Classes are Found
  2. ^ Rich Green (2007年5月8日). “Open JDK is here!”. Sun Microsystems. 2011年11月25日閲覧。
  3. ^ OpenJDK Binary Plugs”. Sun Microsystems (2007年5月8日). 2011年11月25日閲覧。
  4. ^ Angel, Lillian (2008年3月13日). “OpenJDK to replace IcedTea in Fedora 9”. 2012年12月10日時点のオリジナル[リンク切れ]よりアーカイブ。2008年4月5日閲覧。
  5. ^ Wade, Karsten (2008年3月13日). “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.
  6. ^ Herron, David (2007年10月4日). “Plans for OpenJDK”. 2007年10月9日閲覧。
  7. ^ a b c OpenJDK 6 b10 source posted” (2008年5月30日). 2008年6月1日閲覧。
  8. ^ audio-engine project page
  9. ^ Crypto has been added to OpenJDK” (2007年9月27日). 2007年10月7日閲覧。
  10. ^ font-scaler projectpage
  11. ^ a b c Java2D project page
  12. ^ Freetype font rasteriser” (2007年8月7日). 2007年11月24日閲覧。
  13. ^ graphics-rasterizer project page
  14. ^ Javascript is encumbered and there is no javascript plugin support.”. IcedTea (2008年3月11日). 2008年6月1日閲覧。 “Changing Summary. JavaScript is no longer encumbered, but we still need liveconnect support.
  15. ^ Kelly O'Hair (2010年12月). “OpenJDK7 and OpenJDK6 Binary Plugs Logic Removed”. Oracle Corporation. 2011年11月25日閲覧。

関連項目[編集]

外部リンク[編集]