2013-12-23 1 views
1

У меня есть программа java, скомпилированная с java 1.7, и мне нужно использовать этот скомпилированный файл на другом компьютере, который содержит java 1.6.Возможно ли выполнить исполняемый файл java 1.7 скомпилированного кода на локальном компьютере, который содержит java 1.6

Когда я запускаю скомпилированный файл java с java 1.6 "неподдерживаемый исключение версии класса" получение.

Является ли их любая обратная совместимость для выполнения java 7 скомпилированного файла в java 1.6.

+0

Совместимость с ним не обратная - речь идет о передовой совместимости. И это ДЕЙСТВИТЕЛЬНО спрашивает слишком много. – Gimby

ответ

0
  • Если он был скомпилирован с -target> = 1,7, то вы бы проблемы. Это связано с тем, что компилятору было поручено генерировать байт-код для запуска на JVM с версией> = 1.7. Но тогда вы запускали его на JVM 1.6.
  • Если оно составлено с -target < = 1.6, тогда у вас не должно возникнуть проблемы.
1

Извините, насколько мне известно, это невозможно. Вы можете скомпилировать 1.6 совместимые файлы классов на JDK7, но вы не можете запускать файлы классов JDK7 на старых виртуальных машинах.

0

Собирать с другой целевой виртуальной версии

javac -target 1.6 -source 1.6 YourClass.java 

сгенерированный файл класса затем совместим с версией целевой виртуальной машины.

Если вы используете затмение правой кнопкой мыши на проекте и выберите Properties -> Java Compiler и настроить Compiler compliance level

0

Он всегда будет терпеть неудачу при попытке проверить номер версии. Проверьте свои требования и поговорите со своими операторами. Если ваш единственный вариант заключается в запуске в ящике с номером 1.6, вы должны перекомпилировать и убедиться, что у вас есть вся информация о вашей среде исполнения, перед тем как приступить к возникновению каких-либо проблем при переходе на реальный уровень (например, убедитесь, что вы знаете о поставщике JDK, производство машина зависимые пути ...)

0

есть какая-то причина exception.If вы используете библиотеку и не в JDK 1.6 это проблема для компиляции кода в версии 1.6, потому что 1,6 не содержит библиотеки, которая находится в 1,7