Я установил пакет OpenJDK Headless JAVA на Ubuntu 16.04, который работает нормально. Моя переменная JAVA_HOME
установлена в:
/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
Но когда я запускаю Apache Kafka, он пытается загрузить JAVA с неверного пути. Похоже, что он добавляет /bin/java
в конец переменной JAVA_HOME
.
$ sudo /opt/kafka/kafka_2.11-1.1.0/bin/kafka-server-start.sh /opt/kafka/kafka_2.11-1.1.0/config/server.properties
/opt/kafka/kafka_2.11-1.1.0/bin/kafka-run-class.sh: line 271: /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java/bin/java: Not a directory
/opt/kafka/kafka_2.11-1.1.0/bin/kafka-run-class.sh: line 271: exec: /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java/bin/java: cannot execute: Not a directory
Я попытался изменить JAVA_HOME
просто:
/usr/lib/jvm/java-8-openjdk-amd64/jre/
Но он все еще указывает на тот же (недействительный) исполняемый файл Java.
Затем я проверил 271 строку в kafka-run-class.sh, которая говорит:
exec $JAVA $KAFKA_HEAP_OPTS $KAFKA_JVM_PERFORMANCE_OPTS $KAFKA_GC_LOG_OPTS $KAFKA_JMX_OPTS $KAFKA_LOG4J_OPTS -cp $CLASSPATH $KAFKA_OPTS "$@"
Похоже, что он использует переменную JAVA
, поэтому я пытаюсь экспортировать JAVA="/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java"
без всякой удачи.
Может кто-нибудь объяснить, почему это происходит, и как я могу решить это?