Apache Kafka 附加了错误的 JAVA 路径

Apache Kafka 附加了错误的 JAVA 路径

我在 Ubuntu 16.04 上安装了 OpenJDK Headless JAVA 包,运行良好。我的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可执行文件。

然后我检查了 kafka-run-class.sh 中的第 271 行,其中写道:

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. sudo vi ~/.bashrc
  2. 编辑你的 Java Home 目录如下
   export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/jre/
   export PATH=$PATH:$JAVA_HOME/bin
  1. source ~/.bashrc
  2. 然后启动 Kafka
    ~/kafka/bin/kafka-server-start.sh ~/kafka/config/server.properties

相关内容