Java

JavaTM 2 Platform Standard Edition 5.0
概要

目次


JRE と JDK

Sun Microsystems では、JavaTM 2 Platform Standard Edition (J2SETM) ファミリの主体となるソフトウェア製品として、次の 2 つのソフトウェアを提供しています。

J2SE Runtime Environment (JRE)

JRE は、Java プログラミング言語で記述されたアプレットやアプリケーションを実行するのに必要なライブラリ、Java 仮想マシン、その他のコンポーネントを提供します。この実行環境は、作成したアプリケーションを独立して実行できるようにするため、アプリケーションと一緒に再配布することができます。

J2SE Development Kit (JDK)

JDK には、JRE のほか、アプレットやアプリケーションを開発するのに必要または便利なコンパイラおよびデバッガなどのコマンド行開発ツールが含まれています。


Java プログラミング言語

Java プログラミング言語は、同時処理が可能で、強く型付けされるという特徴を備え、クラスをベースとした、汎用のオブジェクト指向言語です。通常は、Java 仮想マシン仕様で定義されたバイトコード命令セットおよびバイナリ形式にコンパイルされます。 詳細は、「言語の特徴」を参照してください。


Java 仮想マシン

Java 仮想マシンは抽象的な計算機で、命令セットを備え、実行時にメモリを操作します。Java 仮想マシンはさまざまなプラットフォームに移植されているため、ハードウェアおよびオペレーティングシステムに依存しないという特徴があります。

Java 2 Platform Standard Edition は、次の 2 つの Java 仮想マシン (VM) を提供しています。

Java HotSpot Client VM

クライアント VM は、主としてクライアントアプリケーション用にプラットフォームを使用するために開発された実装です。クライアント VM は、起動時間を短縮し、メモリ使用量を削減するように調整されています。この VM を起動するには、アプリケーションの起動時に -client コマンド行オプションを使用します。

Java HotSpot Server VM

サーバ VM は、実行速度を最大化するように設計された実装ですが、その代わりに起動時間が長くなり、メモリ使用量も多くなっています。この VM を起動するには、アプリケーションの起動時に -server コマンド行オプションを使用します。

詳細は、VM のドキュメントを参照してください。


基本ライブラリ

Java プラットフォームに基本的な機能を提供するクラスとインタフェースです。

Lang および Util パッケージ

基本的な Object および Class クラスのほか、プリミティブ型のためのラッパークラス、基本数値演算のためのクラス、その他を提供します。詳細は、Lang および Util のドキュメントを参照してください。

Math

Math の機能には、浮動小数点ライブラリと、任意精度の数値演算が含まれています。詳細は、Math のドキュメントを参照してください。

監視と管理

Java プラットフォーム向けの包括的な監視および管理のサポートとしては、Java 仮想マシン用の監視および管理 API、ログ機能用の監視および管理 API、jconsole やその他の監視ユーティリティ、すぐに利用できる監視および管理機能である Java Management Extensions (JMX)、そして Sun のプラットフォーム拡張機能があります。詳細は、監視および管理のドキュメントを参照してください。

パッケージのバージョン ID

パッケージのバージョン管理機能により、パッケージレベルでのバージョン管理が可能になり、アプリケーションおよびアプレットは、特定の Java 実行時環境、仮想マシン、およびクラスパッケージのバージョンを実行時に識別できるようになります。詳細については、パッケージのバージョン ID のドキュメントを参照してください。

参照オブジェクト

参照オブジェクトを使うことにより、限定されたレベルでのガベージコレクタとの対話が可能になります。ほかのあるオブジェクトがガベージコレクタによってすでに再生されていても、そのオブジェクトを指す参照を維持したい場合に、プログラムは参照オブジェクトを使うことができます。さらに、プログラムは、あるオブジェクトへのアクセス可能性が変わったとガベージコレクタが判断したあとで、通知を受けるようにすることができます。このため、参照オブジェクトは、次の場合に役立ちます。 単純なキャッシュだけでなく、メモリが残り少なくなったときにフラッシュされるキャッシュを構築したり、再生されるときにキーや値を維持しないマッピングを実装したり、Java のファイナライズ機構よりも柔軟な方法で事前のクリーンアップ動作をスケジュールしたりする場合などがあります。詳細は、参照オブジェクトのドキュメントを参照してください。

リフレクション

リフレクションによって Java コードは、ロードしたクラスのフィールド、メソッド、およびコンストラクタに関する情報を検出し、リフレクトされたフィールド、メソッド、およびコンストラクタを使って、オブジェクト上でこれらの基にある対応部分を操作することが、セキュリティの制約のもとで可能になります。この API により、(実行時のクラスに基づく) ターゲットオブジェクトの public メンバまたは所定クラスが宣言したメンバへのアクセスを必要とするアプリケーションの作成が可能になります。プログラムでは、デフォルトのリフレクションアクセス制御を抑止することができます。詳細は、リフレクションのドキュメントを参照してください。

Collections Framework

「コレクション」とは、オブジェクトのグループを表すオブジェクトのことです。Collections Framework は、コレクションを表現するための統一されたアーキテクチャで、コレクションの表現の詳細に依存することなくコレクションを操作できます。これにより、プログラミングの労力が軽減され、パフォーマンスが向上します。Collections Framework により、互いに関連していない複数の API 間の相互運用が可能になります。 このため、新しい API を学んだり設計したりする労力が軽減され、ソフトウェアの再利用が促進されます。詳細は、Collections Framework のドキュメントを参照してください。

並行処理ユーティリティ

並行処理ユーティリティパッケージは、スレッドプールやブロックキューなど、パフォーマンスの高いスレッドユーティリティのための強力で拡張可能なフレームワークを提供します。このパッケージを利用するプログラマは、これらのユーティリティを自分で作成する手間から解放されます。ちょうど、Collections Framework のおかげでデータ構造を構築する労力が軽減されたのと同じです。さらに、これらのパッケージは、高度な並行処理プログラミングに利用できる下位レベルのプリミティブ機能も提供します。詳細は、並行処理ユーティリティのドキュメントを参照してください。

Java Archive (JAR) ファイル

JAR (Java ARchive) は、多数のファイルを 1 つのファイルに収容するための、プラットフォームから独立したファイル形式です。複数の Java アプレットおよびそのほかに必要とされるコンポーネント (.class ファイル、イメージと音声) は、JAR ファイルに含まれ、単一の HTTP トランザクションでブラウザにダウンロードされます。 これによりダウンロードの速度は大きく改善されます。JAR フォーマットは、圧縮をサポートします。 これによって、ファイルサイズが縮小され、さらにダウンロード時間が改善されます。加えて、アプレットの著者は JAR ファイル中の個別のエントリに電子的な署名を付加することにより配布元を保証することができます。また、完全な拡張が可能です。詳細は、Java Archive のドキュメントを参照してください。

ログ機能

ロギング API を利用すると、エンドユーザ、システム管理者、フィールドサービスエンジニア、およびソフトウェアの開発チームが分析するのに適したログレポートを生成できるので、ソフトウェアのサービス提供や顧客サイトでの保守が容易になります。ロギング API では、アプリケーションまたはプラットフォームで発生したセキュリティの失敗、構成エラー、パフォーマンスの障害、バグなどの情報を取り込みます。詳細は、ロギングのドキュメントを参照してください。

設定の変更

Preferences API は、ユーザおよびシステムの設定や構成データを、アプリケーションが格納および取得する手段を提供します。このデータは、実装ごとに異なるバッキングストアに持続的に保存されます。設定ノードは 2 つの個別のツリーで構成されます。一方はユーザ設定用、もう一方はシステム設定用です。詳細は、Preferences API のドキュメントを参照してください。

その他のパッケージ

New I/O

J2SE 1.4 で導入された New I/O (NIO) API は、バッファ管理、拡張性のあるネットワークおよびファイル入出力、文字セットのサポート、および正規表現マッチングの分野で新しい機能を提供し、パフォーマンスを向上させています。NIO API は、java.io パッケージの入出力機能を補足するものです。詳細は、New I/O のドキュメントを参照してください。

I/O

入出力機能は、データストリーム、直列化、およびファイルシステムを介してシステムに入力および出力の機能を提供しますバージョン 1.4 では、New I/O (NIO) API の導入により、新機能が追加され、パフォーマンスが向上しました。詳細は、I/O のドキュメントを参照してください。

オブジェクト直列化

オブジェクト直列化は、コア Java の入出力クラスを、オブジェクトをサポートするように拡張するものです。オブジェクト直列化は、オブジェクトとそこから参照されているオブジェクトを、バイトストリームにエンコーディングします。そして、そのストリームからオブジェクトグラフの補足的な再構築を行います。直列化は、簡易な持続性の実現や、ソケットや Remote Method Invocation (RMI) による通信のために使用されます。詳細は、オブジェクト直列化のドキュメントを参照してください。

ネットワーク機能

ネットワーク機能のためのクラスを提供します。たとえば、アドレス指定、URL や URI を使用するためのクラス、サーバに接続するためのソケットクラス、ネットワークセキュリティ機能などがあります。詳細は、ネットワーク機能のドキュメントを参照してください。

セキュリティ

設定変更が可能なアクセス制御、デジタル署名、認証と承認、暗号化、安全なインターネット通信など、セキュリティ関連機能のための API です。詳細は、セキュリティのドキュメントを参照してください。

国際化

国際化したアプリケーションの開発を可能にする API です。国際化とは、技術的な変更をせずにアプリケーションをさまざまな言語および地域に適合させるための、アプリケーションの設計プロセスのことです。詳細は、国際化のドキュメントを参照してください。

JavaBeansTM Component API

Bean (JavaBeansTM アーキテクチャに基づいたコンポーネントで、アプリケーションの開発過程で部品としてアプリケーションに組み込むことができる) の開発に関連したクラスが入っています。詳細は、JavaBeans のドキュメントを参照してください。

Java Mangement Extensions (JMX)

Java Management Extensions (JMX) API は、アプリケーション、デバイス、サービス、Java 仮想マシンなどのリソースを管理および監視するための標準 API です。典型的な用途として、アプリケーション設定の調査と変更、アプリケーションの動作に関する統計情報の収集、状態変化やエラー条件の通知などが考えられます。JMX API にはリモートアクセスが含まれているため、リモート管理プログラムがこれらの目的で実行中のアプリケーションと対話することが可能です。詳細は、Java Management Extensions のドキュメントを参照してください。

XML (JAXP)

Java プラットフォームは、XML ドキュメントおよびデータを処理するための API を豊富に提供しています。詳細は、J2SE の XML に関するドキュメントを参照してください。

Java Native Interface (JNI)

Java Native Interface (JNI) は、Java ネイティブメソッドを記述したり、Java 仮想マシンをネイティブアプリケーションに組み込んだりするための標準プログラミングインタフェースです。主な目的は、所定のプラットフォーム上のすべての Java 仮想マシンの実装間で、ネイティブメソッドライブラリをバイナリ互換とすることにあります。詳細は、Java Native Interface のドキュメントを参照してください。

拡張機能機構

オプションパッケージは、アプリケーションの開発者がコアプラットフォームの機能を拡張するために利用できる Java クラスとそれに関連するネイティブコードのパッケージです。拡張機能機構により、Java 2 プラットフォームで Java 仮想マシン (VM) が各種クラスを使用するのと同じようにして、VM がオプションの拡張機能クラスを利用できるようになります。また、必要なオプションパッケージが JDK または JRE にインストールされていない場合に、指定された URL からパッケージを取得する手段も、拡張機能機構が提供します。詳細は、Java 拡張機能機構のドキュメントを参照してください。

承認済み標準のオーバーライド機構

承認済み標準は、Java Community ProcessSM (JCPSM) 以外の標準化過程で定義された Java API です。承認済み標準は JCP の外部で定義されるため、Java 2 Platform のリリース間で改訂される可能性があります。開発者やソフトウェアベンダーは承認済み標準のオーバーライド機構を使って、Sun Microsystems のリリースで Java 2 Platform に組み込まれているものより新しい、改訂された承認済み標準を利用できます。詳細は、承認済み標準のオーバーライド機構に関するドキュメントを参照してください。


統合ライブラリ

Java Database Connectivity (JDBC) API

JDBCTM API は、Java プログラミング言語からの汎用的なデータアクセスを提供します。JDBC 3.0 API を使用すると、開発者はリレーショナルデータベース、スプレッドシート、フラットファイルなど、実質上あらゆるデータソースにアクセスできるアプリケーションを記述できます。JDBC テクノロジは、ツールと代替インタフェースを構築できる共通のベースも提供しています。詳細は、JDBC のドキュメントを参照してください。

Remote Method Invocation (RMI)

Remote Method Invocation (RMI、リモートメソッド呼び出し) を使用すると、Java プログラミング言語で記述されたプログラム間でのリモート通信が可能になるため、分散アプリケーションを開発できます。RMI では、1 つの Java 仮想マシンで実行中のオブジェクトから、別の Java VM (異なるホスト上にあってもよい) で実行中のオブジェクトにあるメソッドを呼び出すことができます。詳細は、J2SE の RMI に関するドキュメントを参照してください。

Java IDL (CORBA)

Java IDL テクノロジは、Java プラットフォームに CORBA (Common Object Request Broker Architecture) 機能を追加することにより、標準規格に準拠した相互運用性および接続機能を提供します。Java IDL を使用すると、Web 対応の分散型 Java アプリケーションから、Object Management Group による業界標準の IDL (Object Management Group Interface Definition Language) や IIOP (Internet Inter-ORB Protocol) 経由で、リモートネットワークサービス上の操作を透過的に呼び出すことができます。ランタイムコンポーネントには、IIOP 通信を使った分散コンピューティング用の Java ORB が含まれています。詳細は、Java IDL のドキュメントを参照してください。

RMI-IIOP

これは、Java Remote Method Invocation over Internet Inter-ORB Protocol テクノロジの略です。RMI プログラミングモデルにより、RMI API を利用した CORBA サーバおよびアプリケーションのプログラミングが可能になります。Java Remote Method Protocol (JRMP) をトランスポートとして使用して Java プログラミング言語だけで作業することも、Internet InterORB Protocol (IIOP) を使用して他の CORBA 準拠のプログラミング言語を併用して作業することもできます。CORBA 準拠の言語で記述された他のアプリケーションに Internet InterORB Protocol (IIOP) 経由で接続するのに必要なコードを生成するには、rmic コンパイラを使用します。別の言語で記述された CORBA アプリケーションを使用する場合の IDL は、-idl オプションを指定した rmic コンパイラを使って Java プログラミング言語インタフェースから生成できます。IIOP スタブおよび Tie クラスを生成するには、-iiop オプションを指定した rmic コンパイラを使用します。詳細は、RMI-IIOP のドキュメントを参照してください。

Java Naming and Directory InterfaceTM (JNDI) API

Java プラットフォームには、オーディオおよび MIDI (Musical Intstrument Digital Interface) データの取り込み、処理、および再生用の強力な API が含まれています。この API は、このプラットフォームでの高品質なオーディオミキシングおよび MIDI 合成を保証する効果的なサウンドエンジンによってサポートされています。詳細は、JNDI のドキュメントを参照してください。


ユーザインタフェースライブラリ

Input Method Framework

Input Method Framework は、テキスト編集時に、テキスト編集コンポーネントとインプットメソッド間の共同作業を可能にします。インプットメソッドは、キーボードによる単純入力以外の方法でテキストを入力するためのソフトウェアコンポーネントです。インプットメソッドは、多くの種類の文字が必要な日本語、中国語、または韓国語を、文字数よりはるかにキー数が少ないキーボードから入力する方式として普及しています。このフレームワークでは、この 3 言語以外のインプットメソッドもサポートしており、手書き、音声認識などの異なる入力機構にも使用できます。詳細は、Input Method Framework のドキュメントを参照してください。

ユーザ補助機能

Java Accessibility API により、開発者は、体の不自由な方が利用可能な Java アプリケーションを作成できます。Accessibility を利用可能な Java アプリケーションは、画面リーダー、音声認識システム、および点字端末などのユーザ補助機能に対応しています。詳細は、Accessibility のドキュメントを参照してください。

印刷サービス

JavaTM 印刷サービス API を使用すると、J2ME プロファイルなど、サイズが制限されるプラットフォームを含め、すべての Java プラットフォームで印刷が可能になります。詳細は、Java 印刷サービスのドキュメントを参照してください。

サウンド

Java プラットフォームには、オーディオおよび MIDI (Musical Intstrument Digital Interface) データの取り込み、処理、および再生用の強力な API が含まれています。この API は、このプラットフォームでの高品質なオーディオミキシングおよび MIDI 合成を保証する効果的なサウンドエンジンによってサポートされています。詳細は、Java Sound のドキュメントを参照してください。

ドラッグ&ドロップによるデータ転送

ドラッグ&ドロップにより、Java プログラミング言語とネイティブアプリケーションの間、異なる Java プログラミング言語アプリケーションの間、および同一の Java プログラミング言語アプリケーション内でのデータ転送が可能です。詳細は、「ドラッグ&ドロップ転送」を参照してください。

Image I/O

Java Image I/O API は、ファイルに格納されたイメージや、ネットワーク経由でアクセスするイメージを処理するための、プラグイン可能なアーキテクチャを提供します。この API は、イメージの形式に特有のプラグインを追加するためのフレームワークを提供します。よく使われるいくつかのイメージ形式用のプラグインが Java Image I/O に組み込まれていますが、サードパーティが特殊なイメージ形式用の独自のプラグインを作成するためにこの API を利用することもできます。詳細は、「Image I/O」を参照してください。

Java 2DTM グラフィックスとイメージング

Java 2DTM API は、2 次元の高度なグラフィックスとイメージングを処理するクラスの集まりです。ラインアート、テキスト、およびイメージが、1 つの包括的なモデルの中に含まれています。この API は、イメージの合成とアルファチャンネルイメージ、正確なカラー領域の定義と変換用のクラスセット、および表示用イメージング演算子の豊富なセットを幅広くサポートします。詳細は、Java 2D のドキュメントを参照してください。

AWT

JavaTM プラットフォームの Abstract Windowing Toolkit (AWT) は、メニュー、ボタン、テキストフィールド、ダイアログボックス、チェックボックスなどのユーザインタフェースコンポーネントを構築し、これらのコンポーネントからのユーザ入力を処理するための API を提供しています。さらに、AWT を使用すると、楕円や多角形などの簡単な図形を描画したり、アプリケーションで使用するユーザインタフェースのレイアウトやフォントを開発者が制御したりすることもできます。詳細は、AWT のドキュメントを参照してください。

Swing

Swing API も、ユーザインタフェースに使用するグラフィカルコンポーネント (GUI) を提供するものです。Swing API は、Java プログラミング言語で記述されており、基礎となるオペレーティングシステムから提供される GUI 機能に固有のコードには依存しません。そのため、Swing GUI コンポーネントは、アプリケーションの実行中に切り替えることのできる、「プラグイン可能な」Look & Feel を備えています。詳細は、J2SE の Swing に関するドキュメントを参照してください。


配備

Java の配備

インストール、セットアップ、更新、再配布、および関連トピック:

詳細は、配備全般Java Plug-in、および Java Web Start のドキュメントを参照してください。


ツールの仕様

デバッガのアーキテクチャ

開発環境で使用するデバッガのアーキテクチャおよび仕様です。詳細は、Java Platform Debugger Architecture (JPDA) のドキュメントを参照してください。

VM Tool インタフェース

Java Virtual Machine Tool Interface (JVMTI) は、JVM 内で実行されているアプリケーションの状態を検査し、実行を制御するための仕様です。Java Virtual Machine Profiler Interface (JVMPI) は、現在では推奨されていません。詳細は、Java Virtual Machine Tool Interface (JVMTI) のドキュメントを参照してください。

Javadoc ツール

Javadoc は、ソースファイルの宣言とドキュメンテーションコメントを解析して、プログラム要素について記述した一式の HTML ページを生成するツールです。ドックレット API により、プログラムやライブラリのソースレベルの構造 (ソースに埋め込まれた javadoc コメントを含む) を調べるための機構がクライアントに提供されます。ドックレットは、この API を使用してドキュメントを生成できます。詳細は、Javadoc のドキュメントを参照してください。

注釈処理

apt ツールは、注釈処理のためのコマンド行ユーティリティです。このツールには一式のリフレクト API が含まれており、プログラムの注釈を処理するためのインフラストラクチャをサポートしています。これらのリフレクト API は、プログラムの構造について、ビルド時のソースに基づく読み取り専用ビューを提供します。そして、汎用型が追加された後の Java プログラミング言語の型システムを明瞭にモデル化できるように設計されています。詳細は、apt のドキュメントを参照してください。


JDK ツールおよびユーティリティ

JDK には、ツールおよびユーティリティのドキュメントが含まれています。それらのドキュメントでは、基本ツール (javac、java、javadoc、apt、appletviewer、jar、jdb、javah、javap、extcheck)、セキュリティツール、国際化ツール、RMI ツール、IDL および RMI-IIOP ツール、配備ツール、Java Plug-in ツール、Java Web Start ツール、監視および管理ツール、トラブルシューティングツールについて説明されています。 詳細は、「JDK ツールとユーティリティ」を参照してください。


プラットフォーム

Sun は、Microsoft Windows、Linux、Solaris の各オペレーティングシステム用の JDK および Java Runtime Environment の実装を提供しています。これらのプラットフォームのどのバージョンがサポートされているかに関する情報は、「Supported System Configurations」を参照してください。

Macintosh や AIX など、その他のオペレーティングシステムについては、他社が Java プラットフォームの実装を提供していることがあります。



Copyright © 2004 Sun Microsystems, Inc. All Rights Reserved. Sun
Java ソフトウェア