首页 > 解决方案 > 适用于 Linux 的 Windows 子系统无法识别 JAVA_HOME 环境变量

问题描述

我试图让 WSL 识别我的 Windows 安装的 JAVA_HOME 环境变量。我附上了我的 bashrc 中的内容和我的 windows 环境变量中的内容以及 cmd 和 bash 的输出。 JAVA_HOME 环境  变量。

<code>在此输入图片说明</code>

我的 bashrc 末尾是什么:

export JAVA_HOME="/mnt/d/Program Files/Java/jdk-11.0.1"
export PATH="/mnt/d/Program Files/Java/jdk-11.0.1/bin:$PATH"

CMD 输入/输出:

C:\Users\jaall>javac --version
javac 11.0.1

重击输入/输出:

myubuntu_name@DESKTOP-LUK3BII:~$ javac --version

Command 'javac' not found, but can be installed with:

sudo apt install default-jdk
sudo apt install openjdk-11-jdk-headless
sudo apt install ecj
sudo apt install openjdk-8-jdk-headless

我已经坚持了一段时间,无法弄清楚或在线找到有效的解决方案。谢谢!

标签: javaubuntuenvironment-variablesdevelopment-environmentwindows-subsystem-for-linux

解决方案


正如 Biswapriyo 所建议的,您应该使用 WSLENV。

  1. 打开 PowerShell。然后将 JAVA_HOME 设置为您的 java 安装路径。

  2. 在你的情况下,运行 setx JAVA_HOME "D:\Program Files\Java\jdk-11.0.1"

您应该会看到一条消息,上面写着“成功:指定的值已保存。

  1. 然后运行setx WSLENV "JAVA_HOME/p"

您应该再次看到成功消息。

  1. 在 WSL bash 提示符中输入“env”。

此时您应该会看到 JAVA_HOME 设置正确。

注意:如果第 2 步不起作用,您可能需要更改 JAVA_HOME 的路径以包含“\bin”文件夹。


推荐阅读