コンテンツにスキップ

Java Runtime Environment

出典: フリー百科事典『ウィキペディア(Wikipedia)』

Java Runtime Environment(Java実行環境、JRE)とは、コンピュータシステム上でJavaプラットフォーム用のアプリケーションソフトウェアJavaアプリケーション)を動かせるようにするソフトウェア群である。Java Development Kit から開発以外には不要なファイルを除去したものである。

Java 10 まではオラクル(旧サン・マイクロシステムズ)は JRE を配布していたが、2018年9月の Java 11 にて廃止した[1]。オラクルは JRE を OS にインストールするのではなく、アプリケーションごとに OpenJDK のサブセットを同梱配布する方法を推奨していて、それゆえ廃止された[2]。ただし、OpenJDK から派生して作られた JRE をいくつかの組織が配布している[3]。例えば Eclipse Temurin の JDK 25 の場合、x64Linux 版では、JDK は 140MB なのに対して、JRE は 61MB と配布サイズが小さくなる[4]。ただし、Docker の場合は、JRE よりも jlink を使用することを薦めている[5]

Java 10までのJRE

[編集]

JREのソフトウェア群はJava仮想マシン (JVM) とアプリケーションプログラミングインタフェース (API) から成り立っている。APIはエディション(プロファイル)に応じて、標準Javaクラスライブラリの集合や拡張ライブラリなどを提供する。仮想マシンとAPIは互いに互換性がなければならず、それゆえJREとして共にバンドルされている。これは仮想マシンがプロセッサであり、APIがユーザインタフェースであるような仮想的なコンピュータと考えることができる。

JREは、Javaアプリケーション開発に必要なJavaコンパイラなどを含むソフトウェア開発キット (SDK) であるJava Development Kit(JDK、Java開発キット)にも同梱されている。

Javaアプリケーションは対応するJREがなければ動作させることができない。Java互換の組み込み機器では通例JREが標準インストールされているが、デスクトップマシンでは、JREが標準インストールされていないこともあり、その場合はJREを事前にインストールする必要がある。JDK 10までは、javapackagerと呼ばれるツールを利用し、JREをアプリケーションパッケージにプライベートモジュールとして同梱(バンドル)・再配布する形態もサポートされていた[6]。JREは基本的に後方互換性を保っており、古いJDKを利用して作成されたJavaアプリケーション(JAR)を新しいJRE上で動作させることもある程度可能であるが、新しいバージョンのJDK/JREで持ち込まれた非互換性により、アプリケーションが正常に動作しなくなることもある[7]Javaアプレットなど、一部のソフトウェアコンポーネントは古いバージョンのJDK/JREにしか含まれておらず、新しいバージョンのJDK/JREでは利用不可能であるものもある。JavaFXのように、かつてJDK/JREに標準で含まれていたものの、のちに分離・独立して個別提供されるようになったコンポーネントもある。

Java 10までのJREにはJava Web Startも同梱されていた。インストール時にMozilla FirefoxOperaInternet ExplorerなどのウェブブラウザにJava Plug-inをインストールするかどうかを尋ねられる。これはブラウザでJavaアプレットを動かし、Java Web Start対応Javaアプリケーションを起動できるようにするために必要なものであり、単純にFlashをブラウザ上で直接実行したり、ブラウザ外部のメディアプレーヤーを起動したりといったものと同じプラグインの一種である。

JREのアップデートには、旧バージョンを削除しないものがあった。セキュリティホールが発見されている、あるいはサポートが終了している旧バージョンのJava (JDK/JRE) をシステムに残しておくと、重大なセキュリティリスクが生じるため、旧バージョンを手動で削除することが強く推奨されている[8]

関連項目

[編集]

参照

[編集]
  1. ^ Oracle JDK 移行ガイド”. Oracle Help Center. 2025年9月20日閲覧。
  2. ^ JDKの新しいリリース・モデル、および提供ライセンスについて | Oracle 日本”. oracle.com. 2025年9月20日閲覧。
  3. ^ AndroidのJava実行環境は正式にライセンスされたJREではなく、またDalvik仮想マシン/Android Runtimeは正式なJava仮想マシンとの互換性がない。
  4. ^ Adoptium, Eclipse. “Adoptium”. Adoptium. 2025年9月23日閲覧。
  5. ^ Adoptium, Eclipse. “Using Jlink in Dockerfiles instead of a JRE”. adoptium.net. 2025年9月23日閲覧。
  6. ^ javapackager
  7. ^ JDK 8の互換性ガイド
  8. ^ 古いバージョンのJavaをシステムからアンインストールしなければならないのはなぜですか。

外部リンク

[編集]