问题描述
我的.bashrc中有一个导出命令,用于将java.exe文件的路径添加到PATH。现在,运行echo $ PATH可以在结尾处给我
/mnt/c/Program Files/Java/jdk-14.0.2/bin
这正是java.exe和javac.exe文件的存储位置,但是当我运行类似
java -version
我遇到了Command 'java' not found
错误。我在这里做什么错了?
解决方法
您已将Java二进制文件的 Windows 版本添加到Path。您使用WSL运行 Linux 二进制文件。 (WSL1是兼容层,WSL2使用Linux内核。)
您有两个选择:
-
在WSL环境中安装Java。例如在Ubuntu上,使用以下命令:
sudo apt update sudo apt install openjdk-14-jdk
安装Java后,它将在搜索路径中可用。
-
您也可以通过在名称上调用
java.exe
(请注意.exe
)来运行Windows版本。这样,WSL将调用Windows版本。 (https://docs.microsoft.com/en-us/windows/wsl/interop#run-windows-tools-from-linux)
如果出于某种原因要使用Windows版本的Java,则几乎可以使用。请尝试这个:)
java.exe -version
,
在wsl中安装Java:
sudo apt-get -y install openjdk-14-jdk
检查版本。
java –version
检查配置JAVA_HOME的路径。
sudo update-alternatives --config java
例如
/usr/lib/jvm/java-14-openjdk-amd64/bin/java.
编辑环境文件以添加路径:
sudo nano /etc/environment
add声明并添加JAVA_HOME:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:$JAVA_HOME/bin"
JAVA_HOME=/usr/lib/jvm/java-14-openjdk-amd64
保存并检查路径。
source /etc/environment
echo $JAVA_HOME
输出
/usr/lib/jvm/java-14-openjdk-amd64