ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|---|
|
エラーの意味
Java の実行時に以下のエラーが出ることがあります:
java.lang.UnsupportedClassVersionError: com/example/Hello :
Unsupported major.minor version 52.0
これは「このクラスファイル(.class)は、現在の JVM ではサポートされていないバージョンです」というエラーです。具体的には:
- 52.0 = Java 8 (1.8) でコンパイルされたクラスファイル
- それを Java 7 以前の JVM で実行しようとして失敗
クラスファイルバージョン早見表
| major version | Java バージョン | リリース年 |
|---|---|---|
| 45.x | Java 1.1 | 1997 |
| 46.0 | Java 1.2 | 1998 |
| 47.0 | Java 1.3 | 2000 |
| 48.0 | Java 1.4 | 2002 |
| 49.0 | Java 5 | 2004 |
| 50.0 | Java 6 | 2006 |
| 51.0 | Java 7 | 2011 |
| 52.0 | Java 8 (LTS) | 2014 |
| 53.0 | Java 9 | 2017 |
| 54.0 | Java 10 | 2018 |
| 55.0 | Java 11 (LTS) | 2018 |
| 56.0 | Java 12 | 2019 |
| 57.0 | Java 13 | 2019 |
| 58.0 | Java 14 | 2020 |
| 59.0 | Java 15 | 2020 |
| 60.0 | Java 16 | 2021 |
| 61.0 | Java 17 (LTS) | 2021 |
| 62.0 | Java 18 | 2022 |
| 63.0 | Java 19 | 2022 |
| 64.0 | Java 20 | 2023 |
| 65.0 | Java 21 (LTS) | 2023 |
原因の特定
1. 現在の JVM バージョンを確認
java -version
# 例:
# java version "1.7.0_80" ← Java 7 だと 52.0 (Java 8) を実行できない
2. クラスファイルのバージョンを確認
javap -v MyClass.class | grep "major version"
# 例:
# major version: 52 ← このクラスは Java 8 でコンパイルされている
3. ファイルから直接バージョンを確認
# .class ファイルの 7-8 バイト目が major version
od -A n -t d -j 6 -N 2 MyClass.class
# 0 52 ← major version 52
対処方法
方法 1: JVM をアップグレード(推奨)
実行環境の Java を、クラスファイルのバージョン以上に上げます。
# Ubuntu/Debian
sudo apt install openjdk-11-jdk
# CentOS/RHEL
sudo yum install java-11-openjdk
# Mac (Homebrew)
brew install openjdk@11
# Windows
# https://adoptium.net/ から Java 11 LTS をダウンロード
複数バージョンが共存している場合は JAVA_HOME と PATH を切り替え:
# Linux/Mac
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk
export PATH=$JAVA_HOME/bin:$PATH
# Windows
setx JAVA_HOME "C:\Program Files\Java\jdk-11"
setx PATH "%JAVA_HOME%\bin;%PATH%"
方法 2: 古いバージョン向けに再コンパイル
JVM のアップグレードができない場合、ソースを古いバージョン向けにコンパイルします。
# Java 7 互換でコンパイル
javac -source 1.7 -target 1.7 MyClass.java
# Maven の場合 (pom.xml)
maven-compiler-plugin
1.7
1.7
# Gradle の場合 (build.gradle)
sourceCompatibility = 1.7
targetCompatibility = 1.7
方法 3: ライブラリの古いバージョンを使う
サードパーティライブラリで Java 8+ を要求するものを使っている場合、Java 7 互換の古いバージョンに戻す:
# pom.xml
org.apache.commons
commons-lang3
3.5
よくある発生シーン
- 古い Tomcat / Glassfish に新しい WAR をデプロイ: サーバー側 JVM が古い
- CI/CD のビルド環境とデプロイ先環境の JDK バージョンが異なる
- サードパーティ jar が新しい Java で作られている: Maven 依存ライブラリを上げたら発生
- 古いマシンに新しい IDE のプロジェクトを持ち込み
- Android アプリで Java 8 機能を使った: minSdkVersion との互換性
関連エラー
UnsupportedClassVersionError: ... version 55.0→ Java 11 でコンパイル、Java 8 以前で実行UnsupportedClassVersionError: ... version 61.0→ Java 17 でコンパイル、Java 11 以前で実行NoClassDefFoundError→ クラスは存在するがロード時にエラー(バージョン以外の原因も)NoSuchMethodError→ 同名メソッドのシグネチャ違い
関連記事
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページ
子ページはありません
同階層のページ
- java.lang.NoSuchMethodError
- java.lang.ClassCastException: java.util.Date cannot be cast to java.sql.Date
- java.lang.UnsupportedClassVersionError
- version less than X.X is not supported.
- パッケージ~は存在しません
- org.apache.jasper.JasperException: ...The jsp:param action must not be...
- java.io.FileNotFoundException: ファイル名 (許可がありません)
- java.sql.SQLException: Cannot convert value 'YYYY-MM-DD ...' from column n(YYYY-MM-DD ...) to TIMESTAMP.
- 警告: この文字は、エンコーディング[文字コード]にマップできません
- java.text.ParseException: Unparseable date
- Unsupported major.minor version 52.0
- エンティティ" ... "への参照は';'デリミタで終了する必要があります。
- java.math.BigDecimal cannot be cast to java.lang.String
人気ページ
- 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
コメントを削除してもよろしいでしょうか?