JRE( Java ランタイム環境)とは何でしょう?
黒と青の背景
JRE( Java ランタイム環境)

Java ランタイム環境(JRE)が何を行い、他の Java プラットフォーム・コンポーネントとどのように連携してJava アプリケーションを実行するかについて学びましょう。

注目の製品

WebSphere Hybrid Edition


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 アプリケーションを実行します。 すべての JRE にはデフォルトの JRE が含まれていますが、開発者は自身のアプリケーションが必要とする特定のリソースのため別途に JRE を自由に選択できます。

JDK で作成された Java コードと、それを JVM 上で動作させるために必要なライブラリを組み合わせて、JRE は完成したプログラムを実行する JVM のインスタンスを作成します。 JVM は複数のオペレーティングシステムに対応しており、JRE で作成したプログラムはそれら全てのオペレーティングシステム上で動作します。 このようにして、どのようなオペレーティングシステムでも Java プログラムを改修なしで実行できるようにするのが Java ランタイム環境です。

互換性を持つ JRE を含めた JDK を Oracle からダウンロードできます (リンクは ibm.com 外になります)。


JRE はどのように機能するのでしょう?

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

クラス・ローダー

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

バイトコード検証器

バイトコード検証器は Java コードがインタープリターに転送される前に、そのフォーマットと正確性を確認します。 コードがシステムの整合性やアクセス権に違反している場合、そのクラスは破損しているものとみなされ、ロードされません。

インタープリター

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


JRE はどのようなもので構成されているのでしょう?

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

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

Java ウェブスタートや Java プラグインなどアプリケーションの起動を簡素化し、将来の Java アップデートを高度にサポートするデプロイメント技術が JRE のインストールの一部として含まれています。

開発ツールキット

JRE にはユーザーインターフェースを開発者が改善できるよう設計されたツールキットも含まれています。 これらいくつかのツールキットが含まれます:

  • Java 2D: Java 言語で2次元グラフィックスを描画するためのアプリケーション・プログラミング・インタフェース(API)です。 リッチなユーザーインターフェイス、特殊効果、ゲーム、そしてアニメーションを開発者は作成できます。
  • Abstract Window Toolkit (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 形式でまとめられるプラットフォームに依存しないファイルフォーマットで、ダウンロード速度の大幅な向上とファイルサイズの縮小を実現します。

JRE と IBM

JRE と IBM Cloud

多くの組織にとって Java はアプリケーション開発に欠かせない存在であり続けていて、ポータブルでスケーラブルなソリューション作成に向けた強固な基盤を提供しています。 それはまたクラウド化に向けたアプリケーションの最新化の作業でも重要な役割を果たしています。  

次のステップに進みます:

  • OpenJDKおよびIBM Runtimes for Business の詳細をみる、両者は Java アプリケーションの実装、監視、管理に向けた信頼性とコスト効率が高い商用サポートを提供します。

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


関連ソリューション

ビルドと迅速な最新化

イノベーションを推進しビジネスを前進させるために、あなたのチームが必要とするスキルとツールを提供します。


OpenJDKとIBM Runtimes for Business

IBM Runtimes for Business はオープンソースの Java ランタイム環境のサポートに加え、Java アプリケーションの監視と管理も提供します。