Java(tm)プラットフォームの概要


JREとJDK

Oracleでは、Java(tm) Platform Standard Edition (Java(tm) 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は起動時間を短縮し、メモリー・サイズを縮小するように調整されています。これを起動するには、アプリケーションの起動時に-clientコマンド行オプションを使用します。

Java HotSpot Server VM

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

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


基本ライブラリ

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

LangおよびUtilパッケージ

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

Math

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

モニタリングと管理

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

パッケージ・バージョン識別

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

参照オブジェクト

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

リフレクション

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

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のドキュメントを参照してください。

ロギング

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

Preferences

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

その他の基本パッケージ

I/O

java.ioおよびjava.nioパッケージは、アプリケーションの入出力を管理するための豊富なAPIセットを提供します。その機能には、ファイルおよびデバイスの入出力、オブジェクト直列化、バッファ管理、文字セットのサポートが含まれます。そのほかAPIは、多重化された非ブロック入出力、メモリー・マッピング、ファイルのロックなど、スケーラブルなサーバーの機能をサポートします。詳細は、I/Oのドキュメントを参照してください。

オブジェクト直列化

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

ネットワーク機能

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

セキュリティ

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

国際化

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

JavaBeans(tm) Component API

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

JMX (Java Management Extensions)

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 Process(SM) (JCP)以外の標準化過程で定義されたJava APIです。推奨標準はJCPの外部で定義されるため、Javaプラットフォームのリリースの間に改訂される可能性があります。推奨標準の新しいリビジョンを利用するために、開発者やソフトウェア・ベンダーは、推奨標準優先メカニズムを使って、OracleがリリースしたJavaプラットフォームに組み込まれているものより新しいバージョンの推奨標準を提供できます。詳細は、推奨標準優先メカニズムに関するドキュメントを参照してください。


統合ライブラリ

Java Database Connectivity (JDBC) API

JDBC(tm) 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のドキュメントを参照してください。

Scripting for the Java Platform

Java SEは、「JSR 223: Scripting for the Java(tm) Platform」のAPIを含みます。これは、Javaアプリケーションがスクリプト・エンジンを「ホストする」ためのフレームワークです。Java SEには、ECMAScript言語仕様第5.1版の実装であるNashornエンジンが含まれています。スクリプト・フレームワークでは、jar「サービス検出」メカニズムによって、サード・パーティ製のスクリプト・エンジンがサポートされています。JSR-223に準拠したスクリプト・エンジンをCLASSPATHに「入れて」、使用しているJavaアプリケーションから同じスクリプト・エンジンにアクセスできます。詳細は、スクリプトのドキュメントを参照してください。

Java Naming and Directory Interface(tm) (JNDI) API

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


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

Input Method Framework

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

Accessibility

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

印刷サービス

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

サウンド

Javaプラットフォームには、オーディオおよびMIDI (Musical Instrument 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 2D(tm)グラフィックスとイメージング

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

AWT

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

Swing

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

JavaFX

Java SE 7 Update 2以降にはJavaFX SDKが含まれています。JavaFXプラットフォームは、Javaクライアント・プラットフォームを発展させたものであり、複数のプラットフォーム間で一貫した動作をするRich Internet Application (RIA)をアプリケーション開発者が容易に作成および配備できるように設計されています。詳細は、JavaFXのドキュメントを参照してください。


配備

Javaの配備

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

  • コンピュータへのJavaプラットフォームのインストール
  • Javaコントロール・パネルの設定オプション
  • Javaプログラミング言語でのアプリケーションやアプレットの作成
  • アプレットを呼び出したり、アプリケーションをダウンロードして起動したりするためのWebページの作成
  • WebサーバーでJava関連ファイルを利用可能にする
  • コンピュータ上のJavaプラットフォームの更新

詳細は、Java Platform, Standard Editionデプロイメント・ガイドおよび「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のドキュメントを参照してください。

Dynamic Attach

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

JConsole API

com.sun.tools.jconsoleパッケージには、OracleのJavaプラットフォームへの拡張機能が含まれています。これによって、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ツールとユーティリティ」ドキュメントを参照してください。


プラットフォーム

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

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



Copyright © 1993, 2018, Oracle and/or its affiliates. All rights reserved.