Java

JavaTM Platform Standard Edition 6
概要

目次


JRE と JDK

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

Java SE Runtime Environment (JRE)

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

Java SE Development Kit (JDK)

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


Java プログラミング言語

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


Java 仮想マシン

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

Java 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 を学んだり設計したりする労力が軽減され、ソフトウェアの再利用が促進されます。このため、新しい API を学んだり設計したりする労力が軽減され、ソフトウェアの再利用が促進されます。 詳細は、Collections Framework のドキュメントを参照してください。

並行処理ユーティリティー

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

Java Archive (JAR) ファイル

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

ログ機能

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

Preferences API

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

その他のパッケージ

I/O

java.io および java.nio パッケージは、アプリケーションの I/O を管理するための豊富な API セットを提供します。その機能には、ファイルおよびデバイスの入出力、オブジェクト直列化、バッファー管理、文字セットのサポートが含まれます。そのほか 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 を豊富に提供しています。詳細は、Java SE の 『XML に関するドキュメント』を参照してください。

Java Native Interface (JNI)

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

拡張機能機構

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

推奨標準優先機構

推奨標準は、Java Community ProcessSM (JCPSM) 以外の標準化過程で定義された Java API です。推奨標準は JCP の外部で定義されるため、Java Platform のリリースの合間に改訂される可能性があります。開発者やソフトウェアベンダーは、推奨標準優先機構を使って、Sun Microsystems がリリースした Java 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 (異なるホスト上にあってもよい) で実行中のオブジェクトにあるメソッドを呼び出すことができます。詳細は、Java SE 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 プラットフォームのスクリプト

Java SE 6 には、JSR 223: Scripting for the JavaTM Platform API が含まれています。これは、Java アプリケーションがスクリプトエンジンを「ホストする」ためのフレームワークです。Java SE 6 の Sun の実装には、Mozilla Rhino:java_script for Java に基づくスクリプトエンジンのサンプルが含まれています。スクリプトフレームワークでは、jar「サービス検出」機構によって、サードパーティー製のスクリプトエンジンがサポートされています。JSR-223 に準拠したスクリプトエンジンを CLASSPATH に「入れて」、使用している Java アプリケーションから同じスクリプトエンジンにアクセスすることができます。詳細は、Scripting のドキュメントを参照してください。

Java Naming and Directory InterfaceTM (JNDI) API

Java Naming and Directory InterfaceTM (JNDI) は、Java プログラミング言語で記述されたアプリケーションに、ネーミングおよびディレクトリ機能を提供します。ほかのネームおよびディレクトリサービスの実装と独立して動作するように設計されています。新しいサービス、展開されつつあるサービス、すでに展開されているサービスなど、さまざまなサービスに対して共通の方法でアクセスすることができます。JNDI アーキテクチャーは、API および SPI (Service Provider Interface) から構成されます。この API を使用して、Java アプリケーションからさまざまなネームおよびディレクトリサービスにアクセスすることができます。SPI によって、さまざまなネームおよびディレクトリサービスが透過的にプラグインされます。これらのサービスには、JNDI API を使用して Java アプリケーションからアクセスすることができます。詳細は、JNDI のドキュメントを参照してください。


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

Input Method Framework

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

Accessibility

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

印刷サービス

JavaTM 印刷サービス API を使用すると、Java ME プロファイルなど、サイズが制限されるプラットフォームを含め、すべての 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 を備えています。詳細は、Java SE Swing のドキュメントを参照してください。


Java Web 開発および配布

「Java Web」(Java Web) は、Java アプリケーションの Web 経由での開発や配信を指すほか、Java プラットフォームの Web ベースの配布や更新も指します。 詳細については、「Java Web アプリケーションの開発および配備」、「Java Web 意思決定ガイド」、「アプレット開発者ガイド」、および「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 のドキュメントを参照してください。

Dynamic Attach

com.sun.tools.attach パッケージには、Sun Microsystems の Java Platform への拡張機能が含まれています。これによって、起動している Java 仮想マシンにアプリケーションを接続することができます。いったん接続すると、ターゲット仮想マシンでツールエージェントが起動させることができます。詳細は、接続のドキュメントを参照してください。

JConsole API

com.sun.tools.jconsole パッケージには、Sun Microsystems の Java Platform への拡張機能が含まれています。これによって、JConsole にアクセスするためのプログラムインタフェースを提供します。詳細は、「JConsole の使用」 を参照してください。


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 © 2006 Sun Microsystems, Inc. All Rights Reserved. Sun
Java Software