Javaを使い始めたばかりです。最初の Java プログラムをコンパイルして実行するために、この質問への回答の指示に従っています。JDK 11 をインストールしたばかりで、パスを に設定しましたC:\Program Files\Java\jdk-11\bin
。それを行った後、次のコマンドを使用してプログラムをコンパイルできました。
javac HelloWorld.java
(ファイル名はHelloWorld.java
.)
この結果、 というファイルHelloWorld.class
がディレクトリに表示されます。今、私はこのコマンドを使用してプログラムを実行しようとしました:
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)
私はこの質問を見てきました。これは、私が得ているエラーメッセージと相まって、私のプログラムを実行しているJavaが何であれ、私のコンパイラが大量生産しているよりも古いバージョンのファイルを対象としていることを示唆しています。
上記の質問に対する回答のアドバイスに従って、実行してみjavac -target 8 HelloWorld.java
ました。ただし、これも機能しません。次の警告が表示されます。
warning: target release 8 conflicts with default source release 11
noHelloWorld.class
が作成されます。
Java Runtime Environment 11 が必要な気がしますが、入手方法がわかりません。「get JRE 11」などのクエリを検索すると、「バージョン 8」を提供しているメインの Java ダウンロード ページに戻ります。
付録: 私が保持しているディレクトリは、違いがある場合HelloWorld.java
は と呼ばれます。java