JRE(Javaランタイム環境)

menu icon

JRE(Javaランタイム環境)

Javaランタイム環境(JRE)の動作と、Javaアプリケーションを実行するための他のJavaプラットフォーム・コンポーネントとの連携について説明します。

JRE(Javaランタイム環境)とは?

Javaランタイム環境JRE)は、コンピューターのオペレーティング・システム・ソフトウェアの上で実行されるソフトウェア層です。特定のJavaプログラムの実行に必要なクラス・ライブラリーとその他のリソースを提供します。

JREは、Javaプログラムを開発および実行するための3つの相互関連コンポーネントの1つです。 他の2つのコンポーネントは以下のとおりです。

  • Java開発キットJDKは、Javaアプリケーションを開発するためのツール・セットです。 開発者は、Javaバージョン、パッケージまたはエディション(Java Enterprise Edition(Java EE)、Java Special Edition(Java SE)、Java Mobile Edition(Java ME))に基づいてJDKを選択します。 Javaプログラムの実行はJavaプログラムの開発プロセスの一部であるため、すべてのJDKには常に互換性のあるJREが含まれています。
  • Java仮想マシンJVM)は、ライブJavaアプリケーションを実行します。 すべてのJDKにはデフォルトのJREが含まれていますが、開発者は、自分のアプリケーションの特定のリソース・ニーズを満たす別のJREを自由に選択できます。

JREは、JDKを使用して作成されたJavaコードを、JVMで実行するために必要なライブラリーと組み合わせて、結果のプログラムを実行するJVMのインスタンスを作成します。 JVMは複数のオペレーティング・システムで使用可能です。また、JREを使って作成されたプログラムは、すべてのオペレーティング・システムで実行されます。 このように、Javaランタイム環境は、Javaプログラムを変更せずに任意のオペレーティング・システムで実行できるようにします。

互換性のあるJREを含むJDKは、Oracle社のサイト(IBM外部のリンク)からダウンロードすることができます。

JREの仕組み

JDKとJREは相互にやりとりし、実質的にすべてのオペレーティング・システムでJavaベースのアプリケーションをスムーズに実行できるようにする持続可能なランタイム環境を作成します。 以下は、JREランタイム・アーキテクチャーの構成要素です。

クラス・ローダー

Javaクラス・ローダーは、Javaプログラムの実行に必要なすべてのクラスを動的にロードします。 Javaクラスは必要なときにのみメモリーにロードされるため、JREは、このプロセスを自動化するクラス・ローダーを要求に応じて使用します。

バイトコード・ベリファイヤー

バイトコード・ベリファイヤーは、インタープリターに渡す前に、Javaコードのフォーマットと精度を確認します。 コードがシステム保全性またはアクセス権に違反する場合、そのクラスは破損していると見なされ、ロードされません。

インタープリター

バイトコードが正常にロードされた後、Javaインタープリターは、基礎となるマシン上でJavaプログラムをネイティブに実行できるようにするJVMのインスタンスを作成します。

JREの構成要素

JREは、Java仮想マシンの他に、Javaアプリケーションを最大限に利用するためのさまざまなサポート・ソフトウェア・ツールと機能で構成されています。

デプロイメント・ソリューション

JREのインストールの一部として、Java Web StartやJava Pluginなどのデプロイメント・テクノロジーが組み込まれています。これはアプリケーションのアクティブ化を簡素化し、将来のJava更新のための拡張サポートを提供します。

開発ツールキット

JREには、開発者がユーザー・インターフェースを改善するのに役立つように設計されたツールキットが含まれています。 これらのツールキットの中には、以下があります。

  • Java 2D:Java言語で2次元グラフィックスを描画するために使用されるアプリケーション・プログラミング・インターフェース(API)。 開発者は、豊富なユーザー・インターフェース、特殊効果、ゲーム、アニメーションを作成できます。
  • Abstract Window Toolkit(AWT):オブジェクト、ボタン、スクロール・バー、ウィンドウを作成するために使用されるGUI(グラフィカル・ユーザー・インターフェース)。
  • Swing:豊富なウィジェット・セットを使用して柔軟で使いやすいカスタマイズ機能を提供する、もう1つの軽量GUI。

統合ライブラリー

Javaランタイム環境は、開発者がアプリケーションとサービスの間でシームレスなデータ接続を作成するのを支援する多数の統合ライブラリーを提供します。 以下は、そういったライブラリーの一部です。

  • Java IDL(CORBA):共通オブジェクト要求アーキテクチャーを使用して、Javaプログラミング言語で記述された分散オブジェクトをサポートします。
  • Java Database Connectivity(JDBC)API:開発者が、リモートのリレーションシップ・データベース、フラット・ファイル、スプレッドシートにアクセスできるアプリケーションを作成するためのツールを提供します。
  • Java Naming and Directory Interface(JNDI):プログラミング・インターフェースとディレクトリー・サービスです。命名規則を使用してデータベースから情報を取り出せる移植可能なアプリケーションを作成できるようにします。

言語とユーティリティーのライブラリー

JREにはjava.lang.とjava.util.というパッケージが含まれています。これらは、Javaアプリケーションの設計、パッケージのバージョン管理、管理、モニターのための基本的なパッケージです。 以下は、これらのパッケージの一部です。

  • Collections Framework:アプリケーション・データの保管とプロセスを改善するために設計されたインターフェースの集合で構成される統合アーキテクチャー。
  • Concurrency Utilities:高性能なスレッド化ユーティリティーが含まれた強力なフレームワーク・パッケージ。
  • Preferences API:軽量のクロスプラットフォーム・パーシスタントAPIであり、同じマシン上の複数のユーザーが独自のアプリケーション設定のグループを定義できるようにします。
  • ロギング:詳細な分析のために、セキュリティー障害、構成エラー、パフォーマンス問題などのログ・レポートが作成されます。
  • Java Archive(JAR):複数のファイルをJAR形式にバンドルすることができる、プラットフォームに依存しないファイル・フォーマット。ダウンロード速度を大幅に向上させ、ファイル・サイズを削減します。

JREとIBM

JREとIBM Cloud

Javaは、多くの組織でアプリケーション開発の重要な部分であり続け、移植可能で拡張性の高いソリューションを作成する際に堅固な基盤を提供します。 また、クラウド・ジャーニーでのアプリケーションのモダナイゼーションで、重要な役割も果たします。

詳細情報はこちら:

  • OpenJDKとIBM Runtimes for Businessでは、Javaアプリケーションの導入、モニター、管理のための、信頼性が高くコスト効率の良い商用サポートが得られます。

IBM Cloudアカウントを今すぐ始めましょう。