« ^ »

Java関連の用語を整理する

所要時間: 約 4分

Java製のプロダクト

JavaはWebシステム、銀行系、業務系、組み込みなど多くの分野で使用されている。Javaで実装されているサービスやソフトウェアは無数にある。実装の仕方等を学ぶ時に、既に良く実装されたソフトウェアを眺めてみると、とても参考になる事がある。こういう時、Github等で「awesome-xxx」のように検索してみると、参考になるページを見付けられるかもしれない。xxxの部分は検索したい技術要素に置き換える。今回の場合、「awesome-java」といった感じだ。

「awesome-xxx」というのは、その技術要素で作成されたソフトウェアを一覧に対して、ソフトウェア技術者が良く付けるタイトルで、意味としては「良い感じのJavaソフトウェア集」みたいな感じだ。

Web系のJava技術

Javaサーブレット

サーバー側で動作するJavaプログラムで、リクエストがあった時にHTMLを出力する。

JSP

サーバー側で動作するが、Javaサーブレットとは異なり、HTMLの内部にJavaを記述する。アプリケーションサーバは、HTML内に記述されたJavaを評価し、適切なレスポンスとしてクライアント側に返す。

エデョションの分化

様々な機能をJavaに組み込んだ結果、Java自体が肥大化してきた。そこで対象に合わせたエデョションとして分化する事になった。

Java SE (Standard Edition)

基本的なクラスライブラリがまとめられている。デスクトップアプリケーションを作る際などに使用する。

Java EE (Enterprise Edition)

Webシステムや、大規模システムを構築するライブラリがまとめられている。

Jakarta EE

Javaの技術が多岐に利用されるため、Java EEのバージョンアップのスピードが遅いという問題があった。そこで2018年にOracle社からEclipse財団に管理が移った。商標の理由により、Jakarta EEという名称変更となった。

Java ME (Micro Edition)

家電製品の制御や、モバイル系のシステムを作る時に使用する。

  • 家電製品の制御 (OJPI)
  • ICカードの制御 (Java Card)
  • テレビの制御 (Java TV)
  • モバイル端末 (Java for Mobile)

JDK (Java Development Kit)

JDK (無印)

Javaの開発キット。通常では以下が梱包されている。

実行環境
JRE
言語
javacやそれに関連するビルドツール
クラスライブラリ
Java SE

Webシステムを開発する場合、JDKとJava EEのSDKをインストールする。Oracleが管理している。

OpenJDK

OracleJDK

AdoptOpenJDK

AdoptOpenJDKプロジェクトが配布していたOpenJDKであり jdk-16.0.2+7 まで配布された。AdoptOpenJDKプロジェクトは2020年に、Eclipseプロジェクトに移動し、 Eclipse Adoptium となったため AdoptOpenJDK という名前の配布はこのバージョンで終了し、以降のバージョン Eclipse Temurin として配布されている。

Eclipse Temurin

Adoptiumワーキンググループは、Javaエコシステムで使用する高品質なTCK認定ランタイムや関連する技術要素の促進およびサポートしており1、その一環としてOpenJDKを配布している。これはAdoptOpenJDKの後継となる。Google Cloudは、JavaランタイムにEclipse Temurinを採用するとしている2。Cassandraの公式Dockerイメージでは、Eclipse Temurinが使用されている。特別な理由がない場合は、これを使用すると良い。

JVM

JRE

Javaの実行環境。ハードウェアの違いを吸収する。

Darvik

Androidで動作しているJava実行環境。

https://ja.wikipedia.org/wiki/Dalvik%E4%BB%AE%E6%83%B3%E3%83%9E%E3%82%B7%E3%83%B3

Googleが開発。API仕様についてOracleと訴訟になった。

JVM系言語

Java

Javaそのもの。

Kotlin

Javaプログラムをコンパイルできる別の言語。JetBrainsが開発した。

Clojure

JVM上で動作するLisp。

Scala

統合開発環境

Eclipse

Javaの統合開発環境の代表格。昔は動作が重かったが、今はそうでもないらしいが試していない。

Intelij IDEA

JetBrainsが開発したIDE。

Android Studio

Androidアプリを開発するための統合開発環境。


2

https://www.publickey1.jp/blog/22/google_cloudjavaeclipse_temuringoogleeclipse_adoptium.html#:~:text=Eclipse%E3%81%AE%E3%83%AF%E3%83%BC%E3%82%AD%E3%83%B3%E3%82%B0%E3%82%B0%E3%83%AB%E3%83%BC%E3%83%97%E3%81%AB,%E3%82%92%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9%E3%81%97%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82