トップQs
タイムライン
チャット
視点

Javaクラスライブラリ

Javaアプリケーションが実行時に呼び出せる動的ロード可能なライブラリ群 ウィキペディアから

Remove ads

Javaクラスライブラリ(ジャバクラスライブラリ、JCL)はJavaアプリケーションが実行時に呼び出せる動的ロード可能なライブラリ群である。また、特にJREが提供している java.lang 名前空間他の基本的なクラスを含むライブラリを指すこともある。このライブラリがそれぞれのオペレーティングシステム (OS) あるいはプロセッサ (CPU) の固有機能やシステムライブラリなどを隠蔽して抽象化・標準化する吸収層として働くことで、JavaアプリケーションなどがOSなどのプラットフォームに直接依存することを避けられるようになっている[1]

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

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

実装と設定

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

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

適合

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

主な機能

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

ライセンス

かつてのライセンス

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

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

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

オープンソースライセンス

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

Remove ads

代替実装

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

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

脚注

関連項目

外部リンク

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads