4.

【Tomcat】JRE(JVM)のJavaのバージョン確認方法

編集
この記事の要点
  • Java のバージョン確認は java -version
  • 出力例: java version "17.0.8" 2023-07-18 LTS → Java 17
  • JDK 含むなら javac -version
  • 実行中のプロセスの Java バージョン: jps -lvm + /proc//exe
  • プログラム内からは System.getProperty("java.version")

 

方法 1: java -version (シェル)

$ java -version
openjdk version "17.0.8" 2023-07-18 LTS
OpenJDK Runtime Environment Temurin-17.0.8+7 (build 17.0.8+7-LTS)
OpenJDK 64-Bit Server VM Temurin-17.0.8+7 (build 17.0.8+7-LTS, mixed mode, sharing)

出力の見方:

  • 17.0.8: メジャー.マイナー.パッチ (Java 17)
  • LTS: 長期サポート (Long Term Support)
  • OpenJDK: 配布元(OpenJDK / Oracle JDK / Temurin / Corretto 等)
  • 64-Bit Server VM: アーキテクチャ (32 / 64 bit) と VM タイプ

方法 2: javac -version (JDK のみ)

$ javac -version
javac 17.0.8

# javac がなければ JRE のみで JDK がインストールされていない
# → 開発するなら JDK のインストールが必要

方法 3: java --version (新しい形式)

Java 9 以降は --version(ダブルハイフン)も使えます:

$ java --version
openjdk 17.0.8 2023-07-18 LTS
OpenJDK Runtime Environment Temurin-17.0.8+7 (build 17.0.8+7-LTS)
OpenJDK 64-Bit Server VM Temurin-17.0.8+7 (build 17.0.8+7-LTS, mixed mode, sharing)

JAVA_HOME の確認

環境変数 JAVA_HOME が指す JDK ディレクトリ:

# Linux / Mac
$ echo $JAVA_HOME
/usr/lib/jvm/java-17-openjdk

# Windows
> echo %JAVA_HOME%
C:\Program Files\Eclipse Adoptium\jdk-17.0.8.7-hotspot

# PowerShell
PS> $env:JAVA_HOME

実体のパスを確認

# java コマンドの実体
$ which java
/usr/bin/java

$ ls -l /usr/bin/java
lrwxrwxrwx 1 root root 22 May 15  2026 /usr/bin/java -> /etc/alternatives/java
$ ls -l /etc/alternatives/java
lrwxrwxrwx 1 root root 43 May 15  2026 /etc/alternatives/java -> /usr/lib/jvm/java-17-openjdk/bin/java

# Windows
> where java
C:\Program Files\Eclipse Adoptium\jdk-17.0.8.7-hotspot\bin\java.exe

実行中の Java プロセスのバージョンを確認

# Java プロセス一覧
$ jps -lvm
1234 com.example.MyApp -Xmx2g
1235 org.apache.catalina.startup.Bootstrap -Dcatalina.home=/opt/tomcat ...

# プロセスの実行ファイルを特定 (Linux)
$ ls -l /proc/1234/exe
/proc/1234/exe -> /usr/lib/jvm/java-17/bin/java

# プロセスのバージョン情報 (jcmd)
$ jcmd 1234 VM.version
1234:
OpenJDK 64-Bit Server VM version 17.0.8+7-LTS
JDK 17.0.8

# プロセス起動時のコマンドライン
$ cat /proc/1234/cmdline | tr "\0" " "
/usr/lib/jvm/java-17/bin/java -Xmx2g -jar /opt/myapp/app.jar

プログラム内からバージョン取得

public class JavaVersionInfo {
    public static void main(String[] args) {
        System.out.println("Java Version: " + System.getProperty("java.version"));
        // 例: 17.0.8

        System.out.println("Java Vendor: " + System.getProperty("java.vendor"));
        // 例: Eclipse Adoptium

        System.out.println("JVM Name: " + System.getProperty("java.vm.name"));
        // 例: OpenJDK 64-Bit Server VM

        System.out.println("JVM Version: " + System.getProperty("java.vm.version"));
        // 例: 17.0.8+7-LTS

        System.out.println("Java Home: " + System.getProperty("java.home"));
        // 例: /usr/lib/jvm/java-17/jre

        System.out.println("OS: " + System.getProperty("os.name"));
        System.out.println("OS Arch: " + System.getProperty("os.arch"));

        // Java 9+ の Runtime API
        Runtime.Version v = Runtime.version();
        System.out.println("Feature: " + v.feature());      // 17
        System.out.println("Interim: " + v.interim());      // 0
        System.out.println("Update: " + v.update());        // 8
        System.out.println("Build: " + v.build().orElse(0)); // 7
    }
}

Maven / Gradle で参照する Java を確認

# Maven
$ mvn -version
Apache Maven 3.9.4
Java version: 17.0.8, vendor: Eclipse Adoptium
Java home: /usr/lib/jvm/java-17-openjdk
Default locale: ja_JP, platform encoding: UTF-8
OS name: "linux", version: "5.15.0-25-generic", arch: "amd64", family: "unix"

# Gradle
$ ./gradlew --version
Gradle 8.3
Kotlin: 1.9.0
JVM: 17.0.8 (Eclipse Adoptium 17.0.8+7-LTS)
OS: Linux 5.15.0-25-generic amd64

複数バージョンの切替

Linux/Mac (update-alternatives)

# 候補一覧
$ sudo update-alternatives --config java
There are 3 choices for the alternative java:

  Selection    Path                                            Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-21-openjdk/bin/java            2100      auto mode
* 1            /usr/lib/jvm/java-17-openjdk/bin/java            1700      manual mode
  2            /usr/lib/jvm/java-11-openjdk/bin/java            1100      manual mode

# 番号を入力して切替

SDKMAN!

$ sdk list java
$ sdk install java 21.0.1-tem
$ sdk use java 21.0.1-tem    # シェル内のみ
$ sdk default java 21.0.1-tem  # デフォルト

Windows

JAVA_HOME 環境変数を切り替え、PATH%JAVA_HOME%\bin を有効化。

関連記事

編集
Post Share
子ページ

子ページはありません

同階層のページ
  1. tomcatインストール(CentOS)
  2. WARファイルのAutoDeploy設定
  3. tomcatの起動/停止(Linux, Mac)
  4. JRE(JVM)のJavaのバージョン確認方法
  5. エラー一覧
  6. CATALINA_HOMEの確認方法(Linux, Mac)
  7. 管理画面の開き方
  8. tomcatの起動確認方法
  9. tomcatの起動/停止ログとcatalina.log/catalina.outの違い
  10. CentOSにおけるポート開放方法
  11. Javaのバージョン変更方法(Mac編)