🦍

Java SE,EE,JDK,JRE整理

2025/01/19に公開

はじめに

初めまして、ちびたかです。
JavaのSE,EE,MEやJDK,JREなどの同じような用語がたくさんで、混乱していたので整理をしてみました。
間違えている箇所や、記載方法のアドバイスがありましたらコメントをよろしくお願いいたします。

Java概要

Javaは開発をする時や、動作をする時に必要となる機能やデータをまとめたものを用意している。
それぞれの用途に応じて、3つのエディションが用意されている。

  • Java SE(Java Platform, Standard Edition)

Javaの基本となる機能がまとめられたもの。

  • Java EE(Java Platform, Enterprise Edition)

企業向けの大規模なWebアプリケーション開発に必要な機能がまとめられた、Java SEの拡張。
Java SEの機能に加えて、ウェブアプリケーション開発に必要なServletやJSP、データ永続管理のJPAなどが使用できる。

  • Java ME(Java Platform, Micro Edition)

家電などの組み込み機器や、モバイルデバイスで動作するアプリケーションを開発するためのもの。

JDK(Java Development Kit)

Javaでプログラムの開発や実行を行うためのキット。
実行環境(JRE)の他、コンパイラやデバッガなどのプログラムが含まれている。
JDKをインストールすることで、Javaを使用しアプリケーション開発をすることが可能になる。
JDKはJava SEのことを指していることとほぼ同義である。

JDKの種類

JDKはOpenJDKという、オープンソースのパッケージとして各企業(団体)が開発・配布をしてくれている。
以下にいくつかのOpenJDKをまとめる。

JDK名称 開発企業
Oracle JDK Oracle
Temurin Adoptium
Amazon Corret Amazon Web Service
Red Hat of OpenJDK Red Hat
SapMachine SAP

JDKの構成

先述の通り、JDKはJREやその他の開発ツール(development tools)などで構成をされている。
構成のイメージは以下の通り。

image1.png

JRE(Java Runtime Environment)

Javaを実行するために必要なソフトウェア。
JVMやJavaクラスライブラリなどで構成されている。

  • JVM(Java Virtual Machine)

Java仮想マシンとも言われる。
WindowsやMacOSを動かすためのソフトウェア。
Javaは一つのプログラムを書けば、どのマシンでも動作できる考えの言語。その仕組みとして、中間コードをプラットフォーム別に変換してくれる機能を持つJVMを使用する。

image2.png

  • クラスライブラリ

Javaプログラムを実行するための標準APIやクラスが含まれている。
StringやMathなどもっとも基本的なクラスが含まれているjava.langや、ファイル操作に必要なjava.io、データベース操作に必要なjava.sqlなどが基本的な機能が提供されている。

development tools

JDKにはJREの他に、コンパイラやデバッガなど色々なツールが存在する。
その中の代表として以下のようなツールが含まれている。

  • コンパイラ(javac)

ソースコード(.java)をバイトコード(.class)に変換してくれる機能を持つツール。

  • デバッガ(jdb)

Javaプログラムのデバッグツール。ブレークポイントやステップ実行などでエラーやバグの解決を支援してくれる。

  • アーカイバ(jar)

Javaのクラスやリソースをひとまとめにしてくれる。
まとめることで、配布やデプロイを簡素化することが可能になる。

参考記事

https://www.sejuku.net/blog/12902
https://qiita.com/nowokay/items/c1de127354cd1b0ddc5e

Discussion