ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子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アノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?