Verificação da versão principal do Java no script bash

0

Acabei de instalar o Kafka após o tutorial. Não é iniciado devido ao erro de script sh :

$ sudo kafka-server-start.sh /etc/kafka.properties
/opt/Kafka/kafka_2.12-1.1.0/bin/kafka-run-class.sh: line 252: [[: 10 2018-04-17: syntax error in expression (error token is "2018-04-17")
[0.000s][warning][gc] -Xloggc is deprecated. Will use -Xlog:gc:/opt/Kafka/kafka_2.12-1.1.0/bin/../logs/kafkaServer-gc.log instead.
Unrecognized VM option 'PrintGCDateStamps'
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

linha de verificação 252:

if [[ "$JAVA_MAJOR_VERSION" -ge "9" ]] ; then

Adicionei echo para obter mais informações:

JAVA_MAJOR_VERSION=$($JAVA -version 2>&1 | sed -E -n 's/.* version "([^.-]*).*"//p')
echo "JAVA_MAJOR_VERSION: $JAVA_MAJOR_VERSION"
if [[ "$JAVA_MAJOR_VERSION" -ge "9" ]] ; then

a saída é alterada com:

JAVA_MAJOR_VERSION: 10 2018-04-17

meu java:

$ java -version
openjdk version "10.0.1" 2018-04-17

Pergunta

Como eu devo mudar JAVA_MAJOR_VERSION=$($JAVA -version 2>&1 | sed -E -n 's/.* version "([^.-]*).*"//p') para consertar minha partida de Kafka?

    
por Sergii 17.07.2018 / 22:20

1 resposta

1

Uma solução é eliminar a data do final usando cut . Essa abordagem resultaria em:

JAVA_MAJOR_VERSION=$($JAVA -version 2>&1 | sed -E -n 's/.* version "([^.-]*).*"//p' | cut -d' ' -f1)

Essa abordagem se divide no caractere de espaço (-d '') e assume o primeiro campo. Com base na entrada, isso eliminaria a data anexada do openjdk.

    
por 17.07.2018 / 22:57