1. ホーム
  2. java

[解決済み] java.lang.UnsupportedClassVersionError を修正する方法。サポートされていないメジャー.マイナーバージョン

2022-03-15 05:05:07

質問

を使おうとしています。 メモ帳+α 編集、実行、コンパイルなどのオールインワンツールです。

私は 日本原子力研究所 をインストールし、パス変数を .../bin ディレクトリを作成します。

Notepad++で"Hello world"を実行すると、こんなメッセージが表示されます。

java.lang.UnsupportedClassVersionError: test_hello_world :
 Unsupported major.minor version 51.0
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(Unknown Source)
       .........................................

この問題はバージョンに関するものだと思います。Javaのバージョンによっては、古かったり、新しすぎたりすることがあります。

  1. どうすれば直せますか?
  2. JDKをインストールし、パス変数にJREの代わりにJDKを設定する必要がありますか?
  3. とはどのような違いがあるのでしょうか? PATH 変数が、JRE または JDK にあるかどうか?

解決方法を教えてください。

表示されているバージョン番号は、そのクラスファイルが対応しているJREのバージョンを表しています。

報告されているメジャー番号は

Java SE 17 = 61,
Java SE 16 = 60, 
Java SE 15 = 59,
Java SE 14 = 58,
Java SE 13 = 57,
Java SE 12 = 56,
Java SE 11 = 55,
Java SE 10 = 54,
Java SE 9 = 53,
Java SE 8 = 52,
Java SE 7 = 51,
Java SE 6.0 = 50,
Java SE 5.0 = 49,
JDK 1.4 = 48,
JDK 1.3 = 47,
JDK 1.2 = 46,
JDK 1.1 = 45

(出典 ウィキペディア )

実際の問題を解決するには、新しいバージョンのJava JREでJavaコードを実行するか、Javaコンパイラーにtargetパラメータを指定して、以前のJavaバージョンと互換性のあるコードを作成するように指示する必要があります。

例えば、Java 1.4と互換性のあるクラスファイルを生成するには、次のコマンドラインを使用します。

javac -target 1.4 HelloWorld.java

新しいバージョンの Java コンパイラーでは、ブートストラップ・クラスのパスが設定されていないという警告が表示されることがあります。このエラーに関するより詳しい情報は、ブログポスト bootclasspathのない古いソースを設定した場合のjavacの新しい警告 .