На сервере 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.
Как только вы это сделаете, вы можете выйти из системы, снова войти в систему и выполнить служебную команду.