質問: 本日javaをやり始めた初心者です。 最初の「HelloWorld」のサンプルの場所ですでに苦戦しています。 ``` class HelloWorld{ public static void main(String args[]){ System.out.println("Hallo Welt"); } } ``` これで、普通にコンパイルはできたのですが、実行時にエラーになってしまいます。 コマンド:java HelloWorldで実行 ``` Error: A JNI error has occurred, please check your installation and try again Exception in thread "main" java.lang.UnsupportedClassVersionError: HelloWorld has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0 at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.access$100(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source) ``` 何が原因7日わからないので、わかりやすく教えていただけると幸いです。 ■実行環境 JDK 11.01 ■環境変数の設定 〇〇のユーザー環境変数(U)とシステム環境変数(S)の「PATH」にアドレス「C:\Program Files\Java\jdk-11.0.1\bin」を設定。 システム環境変数で新規に「JAVA_HOME」を追加し、アドレス「C:\Program Files\Java\jdk-11.0.1」を設定。
回答: 質問は解決したようですが、どの回答者様も書いていなかった根本的な原因と思われるものが推測できたので念のため載せます。 **結論から言うと、JDKとJREの二つをインストールしてあることが原因だと思います。 そして、私の場合はJREの方をアンインストールするとこの問題は解決しました。** (ここでは後の文章に合わせ、分かりやすくするためJREと書きましたが アンインストールするときにはWindowsの「アプリと機能」での名前は 「Java 8 Update 241」でした) 私も質問者さんと同じようなエラーメッセージが表示され、javaを実行するバージョンが古いことはここのサイトの回答者様の解答や、他のサイトにて理解していました。 そして、JREを最新に更新するといったこと行っていました。しかしながら、私の場合は解決しませんでした。 ご存知の方は多いのでしょうが、JDKのダウンロードサイト(https://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html) にて If you want to develop applications for Java, download the Java Development Kit, or JDKTM. The JDK includes the JRE, so you do not have to download both separately. ================================= 翻訳 Java用のアプリケーションを開発する場合は、Java Development KitまたはJDKTMをダウンロードしてください。JDKにはJREが含まれているため、両方を個別にダウンロードする必要はありません。 ================================= と書いてあり、私がインストールし更新もしていたJREはそもそも古いバージョンまでしかなく、更新しても新しいバージョンにはならないことが原因でした。(そもそもJREは要らなかった) 古いバージョンのJREが残っており、環境変数のPathでも古いバージョンが優先されたことにより、この問題が起きたと推測しています。 よって、上に書いた結論のようにJREをアンインストールすることによりこの問題は解決します。 また、javaのダウンロードサイト(https://java.com/ja/download/) のものは古いバージョンのもののようです、私の場合はこれが原因でした。 コマンドプロンプトにて「java -version」と入力し、 ================================== java version "13.0.2" 2020-01-14 Java(TM) SE Runtime Environment (build 13.0.2+8) Java HotSpot(TM) 64-Bit Server VM (build 13.0.2+8, mixed mode, sharing) ================================== 以上のように表示されれば最新(投稿時)になっているはずです。