Thi*_* B. 2 java jdk windows-subsystem-for-linux
这个主题可能是一个常见的主题,但是在网上查找时,我没有看到太多与我的案例相关的内容,因为我运行的不是普通的 ubuntu,而是 WSL(适用于 Linux 的 Windows 子系统)。
所以我的问题是我最近从 java 8 切换到 java 17 (我需要 java 8 课程),但我注意到在 ubuntu 终端上,java -version
仍然显示openjdk-1.8.(something)
,而不是jdk-17
类似的东西。
所以我认为卸载 openjdk 就可以解决问题,我对sudo apt-get autoremove openjdk-8-jre
. 但是,现在java
在 ubuntu 终端中输入根本不再起作用,并显示:Command 'java' not found, but can be installed with: ...
。但我担心使用这些命令之一安装它会安装新版本的 java,而不是使用已经安装的版本。
我已经将JAVA_HOME
变量设置为java安装目录,即mnt/c/Program Files/Java/jdk-17.0.1
,但Program Files中的空间似乎确实是一个问题。
我怎样才能解决这个问题?与 Powershell 或 cmd 相比,我通常更喜欢使用 bash 终端,因为我更了解这些命令,因此无法在 bash 中使用java
或javac
对我来说是一个问题。谢谢!
WSL 有一些……独特的东西在这里很重要。.exe
首先,如果您输入 Windows 端但来自 WSL的名称,它将起作用。例如,在 WSL 中打开 Bash 提示符,键入notepad.exe
,然后按 Enter。记事本将打开。
在卸载 OpenJDK 8 之前,您已经openjdk-8-jre
安装在 WSL 中,并且Java 17 安装在 Windows 中。当您java
从 Windows 调用时,它足够智能地添加.exe
,并运行 Java 的 Windows 副本。但是,当您切换到 WSL 时,当您输入 时java
,它会运行 Linux 版本。但是,如果您输入 (到 WSL) java.exe
,它将从 WSL 启动 Windows 版本的 Java,其原因与记事本的工作原理相同。
如果我想从 WSL 进行 Java 开发,我会完全卸载 Windows 版本的 Java,在 WSL 中安装我想要的 Java 版本 ( sudo apt update && sudo apt install openjdk-17-jre
),然后通过 WSL Java 编译器在 WSL 中进行开发。
归档时间: |
|
查看次数: |
4794 次 |
最近记录: |