LoginSignup
0
1

Java用語ざっくり理解(Java SEとかJDKとか)

Last updated at Posted at 2023-11-25

はじめに

Javaの環境構築でよく見かけるが意味を忘れやすい用語たちについて、情報を簡易的に整理しました。
経験者向けの記載粒度です。

Java SE (Java Platform, Standard Edition)

公式サイト

Javaプラットフォームの全体仕様。Javaというプログラミング言語の中心的な概念。
「Java 17」など呼ぶときの「Java」は「Java SE」を指すと考えれば良い。
Java SEは開発者へ提供する基本的な機能とAPIの仕様を定義している。
代表的なものは下記のとおり。

  • if 文、for ループ、try-catch ブロックなどの制御構造や、クラス、インターフェース、継承、多態性などのオブジェクト指向プログラミングの概念。
  • classキーワードやpublicキーワードといった予約語の機能
  • java.langjava.util をはじめとするコアライブラリ etc.

JVM (Java Virtual Machine)

Java仮想マシン。JREおよびJDKに含まれて提供される。
具体的な実装としては HotSpot VM がある。

JRE (Java Runtime Environment)

javaプログラムを 実行 するのに必要なツール群(下記例)を備えたセットのことを指す。

  • javaコマンド
  • JVM
  • Java SEの各種機能・APIを実装したclassライブラリ群 etc.

2023年現在はJRE単体では入手できず、JDKに含まれる形で提供されるので、JREとJDKの区別はさほど意味を持たなくなってきている。

JDK (Java Development Kit)

javaプログラムを 開発 するのに必要なツール群(下記例)を備えたセットの 総称 を指す。
Javaの実体かつ本体と言える。

  • JRE
  • javac:コンパイラ
  • jar:アーカイバ
  • javadoc:ドキュメントジェネレータ
  • jdb:デバッガ
  • jstat:モニタリング etc.

OpenJDK

公式サイト

JDKを実装したオープンソースのソフトウェアおよびプロジェクトのことを指す。
Javaの公式なリファレンス実装とみなされており、ほとんどのケースで「Javaを導入する」とはすなわち「OpenJDKを導入する」ことと同義であると言える。
ただし純粋なOpenJDKそのものを開発で利用することはなく、各ベンダーが独自のビルドやサポートポリシーを持つ実装としてOpenJDKプロジェクトから派生開発し配布しているものをダウンロードして利用するのが一般的。
Oracle社のOracle OpenJDKやAmazon社のAmazon Correttoが代表的なOpenJDKのディストリビューション。

Oracle JDK

Oracle社によって提供されている、JDKを実装した商用利用向けJava。
2019年から有償化されたため、以降多くのプロジェクトではOpenJDKを採用することが多くなった。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1