Назад | Перейти на главную страницу

Centos 6.6: какая java выбирается, когда я запускаю файл JAR / WAR без использования команды java -jar?

На сервере Centos 6.6, как я могу выбрать, какую java следует выбрать, когда я запускаю исполняемый файл JAR или WAR без использования команды «java -jar». Я имею в виду, я бы хотел выполнить это с помощью команды "./archive.war".

На этом сервере у меня установлены java6, java7 и java8. PATH и JAVA_HOME для пользователя root указывают на java8 (все делается с root). Исполняемый файл WAR, который я хочу выполнить, должен запускаться с java8.

Когда я запускаю исполняемый файл WAR с помощью команды "java -jar", все работает нормально. Выбранная версия java верна.

[...]# java -version
java version "1.8.0"
Java(TM) SE Runtime Environment (build 1.8.0-b132)
Java HotSpot(TM) 64-Bit Server VM (build 25.0-b70, mixed mode)

Но когда я пытаюсь запустить эту войну с помощью следующей команды ...

./archive.war

Я получаю ошибку версии java.

Exception in thread "main" java.lang.UnsupportedClassVersionError: <CLASS HERE!> : Unsupported major.minor version 52.0

Это означает, что Centos не выбрал ожидаемую версию java8. Не учтены ли переменные PATH и JAVA_HOME для пользователя root?

Я думаю, что пропустил что-то, что указывало бы системе, какой исполняемый файл необходимо использовать при попытке выполнить файл с расширением * .WAR / JAR? На данный момент это должно указывать на java6 или java7, а не на java8.

Как пользователь root вы можете добавить значение JAVA_HOME в / etc / profile

export JAVA_HOME=/opt/jdkpath
PATH=$PATH:$HOME/bin:/opt/jdkpath/bin

Измените / opt / jdkpath на правильный путь вашей установки jdk.

Как только вы это сделаете, вы можете выйти из системы, снова войти в систему и выполнить служебную команду.