У меня возникла проблема при переносе для запуска моего приложения Springboot с Amazon linux 1 на Amazon linux 2. Я использую файл run с выбором версии Java с помощью < strong>JAVA_HOME:
- Amazon Linux 1: JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk.x86_64
- Amazon Linux 2: JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.282.b08-1.amzn2.0.1.x86_64/jre/bin/java
Все работает нормально в Amazon linux 1, но в Amazon linux 2 я получил ошибку Unsupported major.minor version 52.0. Что меня действительно смущает, так это то, что когда я меняю всю java-версию экземпляра (прикрепленное изображение), все снова работает нормально.
Я предполагаю, что проблема в том, как я указываю на java jre, но я не могу понять это. Может кто-нибудь, пожалуйста, помогите мне с этим. Заранее спасибо.
Редактировать 1: файл sh, который я использую для запуска:
#!/bin/sh
exec 2>&1
ulimit -n 10240
#For Java Classpath
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.282.b08-1.amzn2.0.1.x86_64/jre/bin/java
JAVA_BIN=$JAVA_HOME/bin/
export JAVA_HOME
EXTERNAL_HOME=external
EXTERNAL_RESOURCE=$EXTERNAL_HOME/resources
export SPRING_CONFIG_NAME=application
export SPRING_CONFIG_LOCATION=$EXTERNAL_RESOURCE/
export LOG_DIR=$EXTERNAL_HOME/logs
export LANG=ja_JP.UTF-8
cd $EXTERNAL_HOME
echo $SPRING_CONFIG_NAME
echo $SPRING_CONFIG_LOCATION
echo $LOG_DIR
#exec nice -n 20 java -server -Xmx512M -Xms256M -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 -jar external-0.0.1.jar
#exec nice -n 20 java -server -DLog4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005 -jar external-0.0.1.jar
exec nice -n 20 java -server -Xmx512M -Xms256M -Dlogging.config=file:$EXTERNAL_RESOURCE/log4j2.properties \
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar external-0.0.1.jar
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.282.b08-1.amzn2.0.1.x86_64/jre/bin/java
этот путь содержит каталог/bin
, а этот каталогbin
содержит исполняемые файлы Java? Во-вторых, в командеexec
добавьте$JAVA_BIN
передjava
, чтобы она читала Java по правильному пути - что-то вроде этогоexec nice -n 20 $JAVA_BIN/java -server ...
. - person Jignesh M. Khatri   schedule 28.06.2021java
JAVA_HOME
не требуется.java
читает изPATH
переменной. Таким образом, экспортJAVA_HOME
не имеет никакого смысла. Проверьте это - stackoverflow.com/questions /45246552/java-дом-или-путь-или-оба/ - person Jignesh M. Khatri   schedule 28.06.2021PATH
. Если он указывает на другую JVM, чем та, которая вам нужна, то, как я уже сказал, вам нужно добавитьpath to bin
для выполнения этого конкретного java. - person Jignesh M. Khatri   schedule 28.06.2021