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

忙しいオープンプランのオフィスで働く人々

JREとは

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

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

  • Java開発キット、略してJDKは、Javaアプリケーションを開発するための一連のツールです。開発者は、Javaのバージョンごと、パッケージまたはエディション(Java Enterprise Edition(Java EE)、Java Special Edition(Java SE)、またはJava モバイル Edition(Java ME)など、JDKを選択します。Javaプログラムの実行はJavaプログラムの開発プロセスの一部であるため、すべてのJDKには互換性のあるJREが常に含まれています。

  • Java仮想マシン、略してJVMは、ライブJavaアプリケーションを実行します。すべてのJREにはデフォルトのJREが含まれていますが、開発者はアプリケーションに固有のリソース・ニーズを満たす別のJREを選択できます。

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

互換性のあるJREを含むJDK は、Oracleからダウンロードできます

The DX Leaders

AI活用のグローバル・トレンドや日本の市場動向を踏まえたDX、生成AIの最新情報を毎月お届けします。登録の際はIBMプライバシー・ステートメントをご覧ください。

ご登録いただきありがとうございます。

ニュースレターは日本語で配信されます。すべてのニュースレターに登録解除リンクがあります。サブスクリプションの管理や解除はこちらから。詳しくはIBMプライバシー・ステートメントをご覧ください。

JREの仕組み

JDKとJREは互いに相互作用し、事実上あらゆるオペレーティング・システムでJavaベースのアプリケーションをシームレスに実行できる持続可能なランタイム環境を構築します。これらの属性により、JREランタイム・アーキテクチャーが構成されます。

ClassLoader

Java ClassLoaderは、Javaプログラムの実行に必要なすべてのクラスを動的にロードします。Javaクラスは必要な場合にのみメモリにロードされるため、JREはClassLoaderを使用してオンデマンドでこのプロセスを自動化します。

バイトコード検証ツール

バイトコード検証ツールは、Javaコードがインタプリタに渡される前に、その形式と正確性を確認します。コードがシステムインテグリティまたはアクセス権に違反している場合、クラスは破損していると見なされ、ロードされません。

インタプリタ

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

アプリケーション開発

さあ、クラウドでエンタープライズ・アプリケーション開発を始めましょう

この動画では、Peter Haumer博士が、IBM Z Open Editor、IBM Wazi、Zoweなどのさまざまなコンポーネントとプラクティスを実演しながら、ハイブリッドクラウドでの最新エンタープライズ・アプリケーション開発について説明します。

JREは何で構成されていますか?

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

展開ソリューション

JREのインストールの一部として含まれるのは、Java Web StartやJavaプラグインのようなデプロイメント技術で、アプリケーションの有効化を簡素化し、今後のJavaアップデートに対する高度なサポートを行います。

デベロッパー・ツールキット

JREには、開発者のユーザー・インターフェースの改善を支援するために設計されたツールキットも含まれています。これらのツールキットには次のようなものがあります。

  • Java 2D:Java言語で2次元グラフィックスを描画するために使用されるアプリケーション・プログラミング・インターフェース(API)。開発者は、豊富なユーザー・インターフェイス、特殊効果、ゲーム、アニメーションを作成できます。

  • 抽象的なWindowsツールキット(AWT): オブジェクト、ボタン、スクロール・バー、ウィンドウの作成に使用されるGUI(グラフィカル・ユーザー・インターフェース)。

  • Swing:豊富なウィジェット・セットを使用して柔軟なカスタマイズを提供する軽量なGUI。

統合ライブラリー

Javaランタイム環境は、開発者がアプリケーションとサービスの間にシームレスなデータ接続を作成するのを支援するいくつかの統合ライブラリーを提供します。そのようなライブラリーには、次のようなものがあります。

  • Java IDL(CORBA): Common Object Request Architectureを使用して、Javaプログラミング言語で作成された分散オブジェクトをサポートします。

  • Java Database Connectivity(JDBC)API:開発者がリモート・リレーションシップ・データベース、フラット・ファイル、スプレッドシートにアクセスできるアプリケーションを作成するためのツールを提供します。

  • Java Naming and Directory Interface(JNDI): 命名規則を使用してデータベースから情報を取得できるポータブル・アプリケーションの作成を支援するプログラミング・インターフェイスとディレクトリー・サービス。

言語およびユーティリティ・ライブラリー

JREには、java.lang.およびjava.util.パッケージが含まれており、これらはJavaアプリケーションの設計、パッケージのバージョン管理、管理、監視の基盤となるものです。そのようなパッケージには、次のようなものがあります。

  • コレクション・フレームワーク:アプリケーション・データのストレージと処理を改善するために設計された一連のインターフェイスで構成される統一アーキテクチャー。

  • 同時実行ユーティリティー:高性能スレッドユーティリティーを備えた強力なフレームワークパッケージ。

  • 設定API:同じコンピューター上の複数のユーザーが、独自の設定済みアプリケーション・グループを定義できるようにする、軽量でクロスプラットフォームかつ永続的なAPIです。

  • ロギング:セキュリティー上の失敗、構成エラー、性能の問題などのログ・レポートを生成し、さらなる分析を行うパッケージ。

  • Javaアーカイブ(JAR):プラットフォームに依存しないファイル形式で複数のファイルをJAR形式にバンドルすることで、ダウンロード速度を大幅に向上させ、ファイルサイズを縮小できます。
関連ソリューション
IBMのエンタープライズ向けJavaアプリケーション・サービス

Javaアプリケーションを開発および配信するためのフルマネージドのシングルテナント・サービス。

Javaアプリの詳細はこちら
DevOpsソリューション

DevOpsソフトウェアとツールを使用して、複数のデバイスや環境でクラウドネイティブ・アプリケーションを構築、デプロイ、管理します。

DevOpsソリューションの詳細はこちら
エンタープライズ・アプリケーション開発サービス

クラウド・アプリケーション開発は、一度構築すれば、迅速に反復し、どこにでもデプロイできます。

アプリケーション開発サービス
次のステップ

IBM Cloudアプリケーション開発コンサルティング・サービスは、クラウド戦略を合理化するための専門家のガイダンスと革新的なソリューションを提供します。IBMのクラウドおよび開発のエキスパートと提携して、アプリケーションをモダナイズ、拡張、高速化し、ビジネスに変革をもたらします。

アプリケーション開発サービスの詳細はこちら IBM Cloudを無料で構築開始