2014-01-06 4 views
0

Когда я пытаюсь запустить программу Java в Eclipse, на одном из моих компьютеров, я получаю эту ошибку:Eclipse, функция запуска не работает: неподдерживаемый MAJOR.MINOR версия

Exception in thread "main" java.lang.UnsupportedClassVersionError: gameLogics/Game : Unsupported major.minor version 51.0 

at java.lang.ClassLoader.defineClass1(Native Method) 
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:637) 
at java.lang.ClassLoader.defineClass(ClassLoader.java:621) 
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) 
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283) 
at java.net.URLClassLoader.access$000(URLClassLoader.java:58) 
at java.net.URLClassLoader$1.run(URLClassLoader.java:197) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:306) 
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 

Я искал в интернете и нашел несколько решений , но все они просто сказали, что я пытаюсь запустить его со старой версией Java, чем скомпилировал ее. Единственным решением было перезагрузить Java или установить уровень соответствия Eclipse 1.6, ни один из которых не работал для меня. (Уровень соответствия один не работал, потому что я использовал некоторые функции, доступные только на Java 7. Я использовал его раньше и работал, но мне нужны некоторые функции из Java 7.)

Любопытно, что проект отлично работает на моем другой компьютер, использующий точно такие же файлы, включая файлы предпочтений и данные приложения. Он также работает, если я экспортирую его на любой компьютер, поэтому только функция запуска Eclipse, кажется, сломана.

Я не предоставил никакого кода, потому что нет никакой важной части, поэтому мне нужно будет загрузить весь мой код.

Есть ли какое-либо решение для этого, которое не является одним из тех, что я упоминал ранее в этом посте?

EDIT: Оба компьютера являются компьютерами Mac, если это важно.

+0

Возможно, ваше Eclipse работает на старой установленной версии Java. У вас есть много jdk, установленных в вашей системе? Проверьте ваш eclipse.ini, чтобы узнать, какой параметр -vm используется. – watery

+0

Пробовали ли вы проецировать> CLEAN и перестраивать все с нуля. Возможно, файлы в папке BIN находятся на другом ПК, скомпилированном с другой версией JDK. Также посмотрите на http://stackoverflow.com/questions/7237536/exception-in-thread-main-java-lang-unsupportedclassversionerror-a-unsupporte, поскольку это может быть ваш путь. –

+0

Параметр -vm отсутствует. Вот содержимое файла: [eclipse.ini] (http://pastebin.com/NbHmrqj7). – Ontonator

ответ

0

два варианта:

  1. Это вопрос путь: Смотри: Exception in thread "main" java.lang.UnsupportedClassVersionError: a (Unsupported major.minor version 51.0)
  2. Вы должны восстановить файлы классов.

Вы пытались восстановить свой проект? Я бы посоветовал ЧИСТИТЬ И РЕБЮЛЬ. Если это не работает, перейдите в папку bin и удалите все внутри. Я подозреваю, что eclipse не очищает старые файлы .class с другого компьютера.

Если это не работает, см. Ссылку, поскольку это может быть проблема с пути. Как говорит другой пост:

java.lang.UnsupportedClassVersionError happens because of a higher JDK during compile time and lower JDK during runtime.

Таким образом, вам необходимо проверить настройки и пути. Скорее всего, вы можете компилировать и работать с разными версиями/уровнями JDK.

+0

Я попытался восстановить файлы классов, но это не показало никакого эффекта. Кроме того, я выбрал «Java SE 7 [1.7.0_45]» в качестве моей JRE по умолчанию, и я компилирую с уровнем соответствия 1.7. Я проверил, чтобы убедиться в правильности пути к JRE. Библиотека для проекта такая же, как и по умолчанию. Может ли быть что-то с тем, что Mac OS X настаивает на использовании Java 6? Я бы не подумал, что это имеет значение, поскольку Eclipse позволяет указать конкретную библиотечную систему JRE. – Ontonator

+0

Можете ли вы установить уровень соответствия 1.6 и посмотреть, что произойдет? –

+0

Получаю это сообщение об ошибке: Исключение в теме "main" java.lang.Error: Неразрешенная проблема компиляции: \t Параметры многорынок не допускаются для уровня источника ниже 1.7 \t at gameLogics.Game. (Game.java:126) \t at gameLogics.Game.main (Game.java:149) – Ontonator