我试图在Windows中的CMD上运行Kafka,它非常不稳定,不断给出错误。然后我遇到了这篇文章,它建议安装 Ubuntu 并从那里运行 Kafka。
我已经成功安装了 Ubuntu。鉴于我已经将JAVA_HOME=C:Program FilesJavajdk1.8.0_231
定义为环境变量之一,并且CMD可以识别此变量,但Ubuntu无法识别,我想知道如何使Ubuntu识别这一点,因为目前,当我键入java -version
时,Ubuntu返回command not found
。
更新:请注意,我必须让 Ubuntu 的JAVA_HOME
指向我的 Window 系统中定义的环境变量JAVA_HOME
。因为我在 eclipse 中的 Java 程序需要使用相同的 JVM 与 Kafka 通信。
我在/etc/profile
文件中添加了以下两行。echo $JAVA_HOME
返回正确的路径。但是,java -version
返回安装在 Ubuntu 上的不同版本的 Java,而不是/etc/profile
中定义的
export JAVA_HOME=mnt/c/Program Files/Java/jdk1.8.0_231
export PATH=$JAVA_HOME/bin:$PATH
您有 2 个问题。首先,您省略了环境变量开头的"/",因此除非您cd /
因为"mnt"不存在,否则您的JAVA_HOME
将不起作用。
export JAVA_HOME=/mnt/c/Program Files/Java/jdk1.8.0_231
export PATH=$JAVA_HOME/bin:$PATH
其次,如果您使用Windows JDK,则可执行文件java.exe
java.exe -version
在使用 WSL 时还要考虑 WSL1 在访问 Windows 操作系统磁盘时更快 - 如果使用java.exe
会很有帮助,并且 WSL2 对于 Linux 安装驱动器更快 - 并且您可能最好使用 Linux 二进制文件而不是 Windows 二进制文件,正如您的 Kafka 帖子中所建议的那样。
当用户登录时,环境将从/etc/profile 和 $HOME/.bashrc 文件加载。 有很多方法可以解决这个问题。您可以手动执行 ex
export JAVA_HOME=/opt/jdk1.8.0_66
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
或修复/etc/profile 或 $HOME/.bashrc 中的配置
export JAVA_HOME=/opt/jdk1.8.0_66
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
您可以编辑/etc/profile
,附加
export JAVA_HOME=C:Program FilesJavajdk1.8.0_231
export PATH=$JAVA_HOME/bin:$PATH