java - 适用于 Linux 的 Windows 子系统无法识别 JAVA_HOME 环境变量
问题描述
我试图让 WSL 识别我的 Windows 安装的 JAVA_HOME 环境变量。我附上了我的 bashrc 中的内容和我的 windows 环境变量中的内容以及 cmd 和 bash 的输出。
我的 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
我已经坚持了一段时间,无法弄清楚或在线找到有效的解决方案。谢谢!
解决方案
正如 Biswapriyo 所建议的,您应该使用 WSLENV。
打开 PowerShell。然后将 JAVA_HOME 设置为您的 java 安装路径。
在你的情况下,运行
setx JAVA_HOME "D:\Program Files\Java\jdk-11.0.1"
您应该会看到一条消息,上面写着“成功:指定的值已保存。
- 然后运行
setx WSLENV "JAVA_HOME/p"
您应该再次看到成功消息。
- 在 WSL bash 提示符中输入“env”。
此时您应该会看到 JAVA_HOME 设置正确。
注意:如果第 2 步不起作用,您可能需要更改 JAVA_HOME 的路径以包含“\bin”文件夹。
推荐阅读
- ios - WKWebview [警告] [阻止] https://www.myurl.com 的页面不允许显示来自 mycustomscheme://?path=somepath 的不安全内容
- php - htaccess 删除 url 前缀,检查文件是否存在,如果不发送到 index.php
- c++ - C++ 在编译时使用构造函数已知的长度初始化数组成员
- rest - 发送带边界的多部分/混合请求
- python - pyqt5滚动区域,如何添加标签
- c# - 在 Post 中添加时模型无效
- javascript - 来自xml响应jquery的动态表
- python - 我正在使用 TKinter,它说存在浮点转换错误
- java - 使用 JPA 查询视图会返回奇怪的结果
- reactjs - React:将 javascript 与 jsx 混合