Как запустить файл .jar в Unix? - PullRequest
4 голосов
/ 26 августа 2009

Я создал файл .jar в Windows.
Я должен выполнить этот файл .jar в Unix.

Я запускаю эту команду (java -jar myJar.jar), но она дает

 java.lang.UnsupportedVersionError

Я использую Java версию 1.5.0.12 в Unix.

Ответы [ 7 ]

22 голосов
/ 26 августа 2009

То же, что и в Windows.

java -jar file.jar
5 голосов
/ 26 августа 2009
 java.lang.UnsupportedVersionError

Вы должны пытаться запустить jar, скомпилированный с JDK6, с локальным java1.5.

Вы можете либо:

  • обновить JVM в Unix до 1,6
  • или перекомпилируйте ваши классы с

:

  javac -source 1.5 -target 1.5 -bootclasspath /path/to/jre1.5/lib/rt.jar

чтобы проверить, можете ли вы генерировать 1,5-байтовый код, совместимый.

1 голос
/ 26 августа 2009

Вы пытались использовать более новую версию Java в своей системе Unix?

Если вы управляете файлом jar, можете ли вы ориентироваться на Java 1.5 при его компиляции?

0 голосов
/ 24 апреля 2015

Я столкнулся с той же проблемой. Это связано с тем, что версии JDK времени выполнения и времени компиляции различаются. Сделайте jar через eclipse после изменения версии компилятора java. Следующая ссылка помогла мне.

http://crunchify.com/exception-in-thread-main-java-lang-unsupportedclassversionerror-comcrunchifymain-unsupported-major-minor-version-51-0/

0 голосов
/ 26 августа 2009

Перекомпилируйте ваше приложение с Java 5 на вашем компьютере с Windows.

(Java 6 по умолчанию генерирует совместимый с Java 6 байт-код для использования новых возможностей. Для вас проще всего установить Java 5 JDK и использовать его для перекомпиляции приложения)

0 голосов
/ 26 августа 2009

UnsupportedVersionError означает, что вы скомпилировали исходный код Java с более новой версией Java, чем та, с которой вы пытаетесь его запустить. Java совместима снизу (более новые версии Java могут запускать программы на Java, скомпилированные с более старыми версиями), но не совместима вверх (старые версии Java не могут запускать программы на Java, скомпилированные с более новыми версиями).

Вы говорите, что используете Java 5 в Unix. Вы скомпилировали его с помощью Java 6 на Windows? Тогда это явно не сработает.

Возможные решения:

  • Скомпилируйте ваш исходный код, используя Java 5 в Windows (самый безопасный вариант)
  • Используйте флаги компилятора: -source 1.5 -target 1.5 во время компиляции (это не защитит вас от использования классов Java 6-only из стандартной библиотеки, поэтому это не является полной гарантией того, что ваша программа будет работать без ошибок на Java 5)
  • Обновление до Java 6 в Unix
0 голосов
/ 26 августа 2009
  • Убедитесь, что JDK или JRE установлены. Установите, если это не так.
  • set JAVA_HOME = # Домашний каталог JDK / JRE
  • $ JAVA_HOME / bin / java -jar file.jar

Вам также следует помнить, что JVM не поддерживает прямую совместимость, поэтому, если вы создали JAR-файл с использованием JDK 1.6, он не будет работать с JDK 1.5!

В этом случае вы можете:

  • установить JDK 1.6 в Unix

  • перекомпилируйте jar с флагом -target 1.5 (но вы можете получить любые ошибки из-за несовместимости API, поэтому первый способ намного лучше)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...