ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
3 つのプラットフォームエディション
| エディション | 用途 | 主要 API | 現状 |
|---|---|---|---|
| Java SE (Standard Edition) | デスクトップ / 一般用途 / バックエンドの基盤 | java.lang, java.util, java.io, java.nio, java.net, java.time | 現役 |
| Java EE → Jakarta EE | エンタープライズサーバ(Web/DB/メッセージング) | Servlet, JSP, JPA, EJB, CDI, JMS, JAX-RS | Oracle → Eclipse Foundation 移管 (2018)、Jakarta EE 8/9/10 |
| Java ME (Micro Edition) | 組込・フィーチャーフォン | 限定的 | ほぼ衰退、IoT は Java SE Embedded へ |
JDK / JRE / JVM の違い
| 名前 | 正式名 | 役割 | 含むもの |
|---|---|---|---|
| JDK | Java Development Kit | 開発者用(コンパイル含む) | JRE + javac, javadoc, jar, jdb, jshell 等 |
| JRE | Java Runtime Environment | 実行のみ | JVM + 標準ライブラリ |
| JVM | Java Virtual Machine | バイトコードを実行する VM | クラスローダ / 実行エンジン / GC |
Java 9 からは JRE 単体配布が廃止され、jlink で必要モジュールだけ含めたカスタムランタイムを作るのが現代的です。
# バージョン確認
java -version # JRE 機能(実行系)
javac -version # JDK 機能(コンパイラ)
# 出力例
# openjdk version "21.0.1" 2023-10-17 LTS
# OpenJDK Runtime Environment Temurin-21.0.1+12 (build 21.0.1+12-LTS)
# OpenJDK 64-Bit Server VM Temurin-21.0.1+12 (build 21.0.1+12-LTS, mixed mode)
JVM 実装の比較
| JVM | 提供 | 特徴 |
|---|---|---|
| HotSpot | Oracle / OpenJDK | デファクト。JIT (C1/C2) コンパイラ、G1 GC / ZGC |
| OpenJ9 | IBM (Eclipse) | メモリフットプリント小、起動高速。コンテナに有利 |
| GraalVM | Oracle Labs | 多言語対応 (Polyglot)、Native Image でネイティブバイナリ化 |
| Azul Zing (Prime) | Azul Systems | 低レイテンシ GC (C4) 商用 |
Java バージョンと LTS
| バージョン | リリース | LTS | 主な追加機能 |
|---|---|---|---|
| Java 8 | 2014-03 | ○ | ラムダ式、Stream API、java.time、default メソッド |
| Java 9 | 2017-09 | — | モジュールシステム (Jigsaw)、jshell |
| Java 10 | 2018-03 | — | var 型推論 |
| Java 11 | 2018-09 | ○ | HttpClient 標準化、ZGC (実験)、Single File Run |
| Java 14 | 2020-03 | — | record (プレビュー)、switch 式 |
| Java 17 | 2021-09 | ○ | sealed クラス、record 正式、pattern matching |
| Java 21 | 2023-09 | ○ | 仮想スレッド (Virtual Threads)、record パターン、Sequenced Collections |
2018 年から6 ヶ月ごとのリリースになり、3 年ごとに LTS 指定(Java 17 → 21 → 25 …)です。非 LTS は次バージョンが出ると保守終了。
ディストリビューション (ベンダー)
| ベンダー | 名称 | ライセンス | 備考 |
|---|---|---|---|
| Oracle | Oracle JDK | 商用は有償 (Java 17 以降の本番) | 開発・テストは無料 (NFTC ライセンス) |
| Oracle | OpenJDK | GPL+CE | リファレンス実装 |
| Amazon | Corretto | 無料 | AWS / 本番運用に最適化 |
| Eclipse Foundation | Adoptium Temurin | 無料 | 旧 AdoptOpenJDK の後継、コミュニティ標準 |
| Azul | Zulu (無料) / Zing (有償) | 無料 / 有償 | Zing は低レイテンシ GC |
| Microsoft | Microsoft Build of OpenJDK | 無料 | Azure 親和性 |
| Red Hat | OpenJDK | RHEL に同梱 | RHEL サブスクで商用サポート |
| BellSoft | Liberica JDK | 無料 | Spring Boot 推奨 |
Oracle ライセンスの変遷
- ~Java 8 (2019 年 4 月まで): Oracle JDK は商用無料、Premier Support 終了後は有償
- Java 11 (2019 年): Oracle JDK 商用利用は有償サブスクリプション必須(無料は開発・テストのみ)
- Java 17 以降 (2021 年 9 月~): NFTC (No-Fee Terms and Conditions) ライセンスで本番でも無料(次の LTS リリース後 1 年は無料)
- Java 21 (2023 年): 同じく NFTC で無料
OpenJDK ベースのTemurin / Corretto / Liberica は商用も無料で、本番にはOpenJDK 系を選ぶのが現代の定石です。
インストールと切替 (sdkman)
# sdkman 導入
curl -s "https://get.sdkman.io" | bash
# 利用可能 JDK 一覧
sdk list java
# Temurin 21 をインストール
sdk install java 21.0.1-tem
# Corretto 17 もインストール
sdk install java 17.0.9-amzn
# プロジェクト毎に切替
sdk use java 21.0.1-tem
sdk default java 17.0.9-amzn
Java SE と Jakarta EE の境界
Java EE 8 (2017) を最後に Oracle が Eclipse Foundation へ移管し、Jakarta EE となりました。パッケージ名も javax.* → jakarta.* へ変更(Jakarta EE 9 から)。
// 旧 (Java EE 8 まで)
import javax.servlet.http.HttpServletRequest;
import javax.persistence.Entity;
// 新 (Jakarta EE 9+)
import jakarta.servlet.http.HttpServletRequest;
import jakarta.persistence.Entity;
Spring Framework は6.0 から jakarta.* に完全移行。Spring Boot 3.0 以降は Jakarta EE 9 互換 (Tomcat 10 系) となり、Java 17+ が必須です。
FAQ
Q: 業務で使うならどのバージョン?
A: 2026 年現在は Java 17 か 21。Spring Boot 3 は Java 17+ 必須。新規案件は Java 21 LTS が無難。
Q: Oracle JDK を本番で使うとライセンス料がかかる?
A: Java 17/21 は NFTC で無料利用可(次 LTS 後 1 年)。心配ならTemurin / Correttoを選べば確実に無料。
Q: GraalVM Native Image のメリットは?
A: 起動が数十 ms、メモリ削減大。サーバレス (Lambda) や CLI ツールに最適。リフレクション制限あり。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- Laravel キャッシュクリア完全ガイド(cache:clear / config:clear / 2026-05-18 07:42:07
- プロジェクトの作成と削除 2026-05-18 07:42:07
- インストール直後にNetbeansが反応しない 2026-05-18 07:42:07
- 動画やチャンネルの検索 2026-05-18 07:42:07
- APIキー取得方法 2026-05-18 07:42:07
- チャンネル情報の取得 2026-05-18 07:42:07
- API 入門 — Web API(REST / GraphQL / gRPC / 2026-05-18 07:42:07
- インストール(eclipseプラグイン) 2026-05-18 07:42:07
- Laravel「Dotenv values containing spaces must be surrounded 2026-05-18 07:42:07
- エラー一覧 2026-05-18 07:42:07
- curl: (51) SSL: certificate subject name '~' does not match 2026-05-18 07:42:07
- インストール方法(Windows版) 2026-05-18 07:42:07
- JSONから配列に変換 2026-05-18 07:42:07
- 処理を一定時間待つ 2026-05-18 07:42:07
- A non well formed numeric value encountered 2026-05-18 07:42:07
コメントを削除してもよろしいでしょうか?