Я получаю эту ошибку, когда включаю библиотеку с открытым исходным кодом, которую мне пришлось скомпилировать из исходного кода. Теперь все предложения в Интернете указывают на то, что код был скомпилирован в одной версии и выполнен в другой версии (от новой к старой). Однако в моей системе установлена только одна версия JRE. Если я запустил команды:
$ javac -version
javac 1.5.0_18
$ java -version
java version "1.5.0_18"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_18-b02)
Java HotSpot(TM) Server VM (build 1.5.0_18-b02, mixed mode)
и проверьте в Eclipse свойства библиотеки java, я получаю 1.5.0_18
Следовательно, я должен заключить, что что-то еще, внутреннее по отношению к самому классу, вызывает исключение ?? Это вообще возможно?
Ответы:
Я узнал, что подобные сообщения об ошибках обычно верны. Когда это ВОЗМОЖНО (в вашем уме) не может быть тем, о чем говорится в сообщении об ошибке, вы отправляетесь на поиски проблемы в другой области ... только для того, чтобы через несколько часов узнать, что исходное сообщение об ошибке действительно было правильным.
Поскольку вы используете Eclipse, я думаю, что Тило прав. Наиболее вероятная причина, по которой вы получаете это сообщение, заключается в том, что один из ваших проектов компилирует классы 1.6. Не имеет значения, есть ли у вас в системе только 1.5 JRE, потому что Eclipse имеет свой собственный компилятор (не javac), и для компиляции классов 1.6 требуется только 1.5 JRE. Это может быть странно, и для этого нужно снять флажок, но мне удалось это сделать.
Для рассматриваемого проекта проверьте свойства проекта (обычно Alt + Enter), раздел Java Compiler. Вот изображение проекта, настроенного для компиляции 1.6, но только с 1.5 JRE.
источник
Вы пробовали выполнить полную «очистку», а затем перестроить в Eclipse (Project-> Clean ...)?
Можете ли вы скомпилировать и запустить с javac и java прямо из командной строки? Это правильно работает?
Если вы щелкните свой проект правой кнопкой мыши, перейдите в «Свойства», а затем в «Путь сборки Java», есть ли какие-либо подозрительные записи на любой из вкладок? По сути, это ваш КЛАСС.
В настройках Eclipse вы также можете дважды проверить раздел «Установленные JRE» в разделе «Java» и убедиться, что он соответствует тому, что, по вашему мнению, должно быть.
У вас определенно есть либо устаревший файл .class, либо вы получаете несоответствие времени компиляции / времени выполнения в версиях Java, которые вы используете.
источник
Вы компилировали с Eclipse? Он использует другой компилятор (не javac). Это не должно приводить к этой ошибке (если все настроено правильно), но вместо этого вы можете попробовать скомпилировать ее с помощью javac.
Если это устранило проблему, попробуйте проверить, есть ли в Eclipse неправильные настройки компилятора. В частности, он нацелен на Java 5.
источник
У меня тоже такая же ошибка. Причина в том, что я компилировал проект с помощью Maven. У меня был JAVA_HOME, указывающий на JDK7, и поэтому для компиляции использовалась java 1.7, а при запуске проекта я использовал JDK1.5. Изменение указанной ниже записи в файле .classpath или изменение в eclipse, как показано на скриншоте, решило проблему.
classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5
или измените конфигурацию запуска eclipse как
источник
Также проверьте все файлы jar в вашем проекте, которые были скомпилированы для более поздней версии Java. Если это ваши собственные библиотеки, вы можете исправить это, изменив атрибут целевой версии на javac
<javac destdir="${classes.dir}" debug="on" classpathref="project.classpath" target="1.6">
источник
Другой сценарий, в котором это может произойти, - это когда вы запускаете экземпляр eclipse (для отладки и т. Д.) Из хоста eclipse - в этом случае изменение уровня проекта или библиотеки JRE в пути к классам проекта само по себе не помогает. Важно то, что JRE используется для запуска целевой среды eclipse.
источник
Всегда проверяйте и очевидное. Я получил эту ошибку один раз, когда случайно взял не тот ресурс для действия добавления и удаления сервера. Это легко не заметить.
источник
Также подойдет удаление файлов настроек конкретного проекта (рабочая область Eclipse / папка проекта / .settings /) из папки проекта. Очевидно, нам нужно очистить проект и построить его после удаления.
источник
изменение проекта на использование java 1.7: Чтобы это работало, выполните следующие действия:
Не работает?
Все еще не работает?
в каталоге вашего проекта: отредактируйте .settings / org.eclipse.jdt.core.prefs> убедитесь, что ваш целевой уровень применен
Удачи!
источник
Я решил эту проблему, изменив jre, необходимый для сервера (в моем случае это tomcat). На вкладке «Сервер» в eclipse дважды щелкните сервер (чтобы открыть страницу конфигурации сервера), щелкните «Среда выполнения», затем измените требуемую JRE.
источник