Java SE,EE,JDK,JRE整理
はじめに
初めまして、ちびたかです。
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)などで構成をされている。
構成のイメージは以下の通り。
JRE(Java Runtime Environment)
Javaを実行するために必要なソフトウェア。
JVMやJavaクラスライブラリなどで構成されている。
- JVM(Java Virtual Machine)
Java仮想マシンとも言われる。
WindowsやMacOSを動かすためのソフトウェア。
Javaは一つのプログラムを書けば、どのマシンでも動作できる考えの言語。その仕組みとして、中間コードをプラットフォーム別に変換してくれる機能を持つJVMを使用する。
- クラスライブラリ
Javaプログラムを実行するための標準APIやクラスが含まれている。
StringやMathなどもっとも基本的なクラスが含まれているjava.langや、ファイル操作に必要なjava.io、データベース操作に必要なjava.sqlなどが基本的な機能が提供されている。
development tools
JDKにはJREの他に、コンパイラやデバッガなど色々なツールが存在する。
その中の代表として以下のようなツールが含まれている。
- コンパイラ(javac)
ソースコード(.java)をバイトコード(.class)に変換してくれる機能を持つツール。
- デバッガ(jdb)
Javaプログラムのデバッグツール。ブレークポイントやステップ実行などでエラーやバグの解決を支援してくれる。
- アーカイバ(jar)
Javaのクラスやリソースをひとまとめにしてくれる。
まとめることで、配布やデプロイを簡素化することが可能になる。
参考記事
Discussion