Когда я пытаюсь запустить свой код с помощью команды "java" в окне cmd, я получаю сообщение об ошибке - PullRequest
1 голос
/ 22 июня 2019

Я пытаюсь научиться программировать на Java в первый раз, и я получаю эту ошибку при попытке запустить код в cmd:

Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.UnsupportedClassVersionError: Main has been compiled by a more recent version of the Java Runtime (class file version 56.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)

Это работает в IDEЯ использую (intelliJ).

Ответы [ 2 ]

1 голос
/ 22 июня 2019

Ваш ответ в этой строке:

Exception in thread "main" java.lang.UnsupportedClassVersionError: 
Main has been compiled by a more recent version of the Java Runtime 
(class file version 56.0), this version of the Java Runtime only 
recognizes class file versions up to 52.0

У вас несоответствие версии.Вы скомпилировали свой код в IntelliJ с использованием Java 12, но вы используете Java 8 в своем cmd (вы можете подтвердить это с помощью команды java -version).

Решение состоит в том, чтобы установить cmd на Java 12 (это можно сделать, изменив переменные окружения JAVA_HOME и PATH в Windows).

FYI этот ответ объясняетномера версий файла класса, которые вы видите в сообщении об ошибке.

0 голосов
/ 22 июня 2019

Здесь происходит то, что в вашей системе установлена ​​более старая версия Java, чем та, для которой IntelliJ компилирует.Он работает в IntelliJ, потому что у него есть собственный исполняемый файл Java.

Если вы запустите java -version в командной строке, он выведет версию, которая у вас есть в системе;Вы можете выбрать это как цель компиляции в вашей IDE, чтобы она работала правильно, когда вы запускаете ее из cmd.

...