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
として配布されている。
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アプリを開発するための統合開発環境。
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