В чем причина UnsupportedClassVersionError?

java.lang.UnsupportedClassVersionError: Bad version number in .class file
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:676)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:317)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:280)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at com.exe4j.runtime.LauncherEngine.launch(Unknown Source)
at com.install4j.runtime.MacLauncher.main(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:592)
at apple.launcher.LaunchRunner.run(LaunchRunner.java:115)
at apple.launcher.LaunchRunner.callMain(LaunchRunner.java:50)
at apple.launcher.JavaApplicationLauncher.launch(JavaApplicationLauncher.java:52)

Я совсем не понимаю этого; кто-нибудь может объяснить это просто? Спасибо

5 ответов

Эта ошибка может возникать, когда вы компилируете код с более новой версией JDK и пытаетесь запустить его на более старой версии JVM. Это ваш собственный код, который вы компилируете и используете ли вы IDE (например, Eclipse)? Попробуйте обновить вашу JRE.

JAVA_HOME должен быть определен с использованием более ранней версии Java, чем та, которую вы использовали для компиляции.

Это означает, что ваш компилятор создавал что-то, предназначенное для более высокой версии Java, чем JVM, на которой вы пытаетесь его запустить.

например, скомпилирован для Java 6 и работает с Java 5.

Решение 1. Обновите jvm (введите java -version, чтобы увидеть, что у вас есть)

Решение 2: выберите более низкую версию (например, в настройках Java-компилятора eclipse)

Это говорит о том, что вы используете файл класса для другой версии времени выполнения Java. Какую программу вы устанавливаете (я замечаю installj в вашем стеке трассировки)?

Попробуйте обновить среду выполнения Java.

Я получаю эту ошибку при установке JRE 1,8 и попытался запустить Hello World из GAE application на Eclipse Kepler, Это решение:

Я установил Java 8 support for Kepler от Eclipse Marketplace, Тогда я решил свою проблему, перейдя в Eclipse -> Щелкните правой кнопкой мыши по файлу проекта -> Properties -> Java Build Path, Я удалил JRE System Library 1.6нажал Add Library -> JRE System Library -> Installed JRE's, Затем я нажал Search, он автоматически нашел версию 1.8 а потом я вернулся к предыдущему виду, выбрал 1.8 и теперь все работает отлично!

Другие вопросы по тегам