Я установил пакет 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" без всякой удачи.

Может кто-нибудь объяснить, почему это происходит, и как я могу решить это?

1 ответ1

0
  1. sudo vi ~/.bashrc
  2. Отредактируйте ваш java дом ниже

экспорт JAVA_HOME =/usr/lib/jvm/java-8-openjdk-amd64/jre/

экспорт PATH = $ PATH:$ JAVA_HOME/bin

  1. источник ~/.bashrc
  2. затем запустите Kafka ~/kafka/bin/kafka-server-start.sh ~/kafka/config/server.properties

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .