在 Windows 10 上的 WSL2 上使用 JDK 的正确方法是什么?

Mus*_*bir 6 java linux java-8 windows-10 windows-subsystem-for-linux

我已经在 WSL 上安装了 Ubuntu 20.4 LTS。我的 Windows 10 已经安装了 JDK。我需要在 WSL 上的 ubuntu 上安装 JDK 还是可以在 Ubuntu 中使用 Windows 10 JDK?你如何在 WSL 上进行 Java 编程?哪个是正确的方法?

我只是想知道是否需要在 Linux 上再次安装所有开发工具和二进制文件,这会不会占用大量空间并占用大量 CPU/Ram 资源?

KR3*_*R32 19

我们可以在 wsl2 中使用 Windows JDK。我们应该将其添加到/etc/environment

JAVA_HOME=/mnt/c/Program Files/Java/jdk-11.0.8/bin/
Run Code Online (Sandbox Code Playgroud)

通过添加此 bin 文件夹,我们可以运行常规命令,但附加 .exe 格式,例如:javac.exe hello.java java.exe hello.java

如果您不喜欢这种方式,请添加别名,如下所示:

alias java='java.exe'
alias javac='javac.exe'
Run Code Online (Sandbox Code Playgroud)

我想我们可以使用任何像这样的 Windows 程序:)

  • +1 建议别名。就我而言,WSLENV 工作正常,但是“which java”没有返回任何内容...使用别名或使用“java.exe”一切都按预期工作。 (2认同)

Ste*_*n C 9

没有“正确的”(如JDK 提供商支持推荐的)方式在 WSL 上安装或使用 Java。我找不到任何官方建议。

但是,可以从 WSL 安装并使用适用于 Windows 安装的 Oracle JDK,或者从 Ubuntu 包管理器将 OpenJDK Java 安装到您的 WSL 世界中。

我只是想知道我是否需要在 Linux 上再次安装所有开发工具和二进制文件,这不会占用大量空间并占用大量 CPU/Ram 资源吗?

往上看。但请注意,如果您同时运行两种 JVM,您只会“占用 CPU/RAM” 。

参考:

(如果上述内容不能解决您的问题,还有更多关于此主题的文章。)


小智 5

以具有 sudo 权限或 root 的用户身份运行以下命令以更新包索引并安装 OpenJDK 11 JDK 包:

$ sudo apt update
$ sudo apt install openjdk-11-jdk
Run Code Online (Sandbox Code Playgroud)

安装完成后,可以通过检查Java版本来验证:

$ java -version
Run Code Online (Sandbox Code Playgroud)

输出应如下所示:

openjdk version "11.0.7" 2020-04-14
OpenJDK Runtime Environment (build 11.0.7+10-post-Ubuntu-3ubuntu1)
OpenJDK 64-Bit Server VM (build 11.0.7+10-post-Ubuntu-3ubuntu1, mixed mode, sharing)
Run Code Online (Sandbox Code Playgroud)

设置 JAVA_HOME 环境变量:OpenJDK 11 位于 /usr/lib/jvm/java-11-openjdk-amd64/bin/java

找到首选 Java 安装的路径后,打开 /etc/environment 文件:

$ sudo nano /etc/environment
Run Code Online (Sandbox Code Playgroud)

假设您要将 JAVA_HOME 设置为指向 OpenJDK 11,请在文件末尾添加以下行:

JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"
Run Code Online (Sandbox Code Playgroud)

要使更改在当前 shell 上生效,您可以注销并登录或运行以下源命令:

$ source /etc/environment
Run Code Online (Sandbox Code Playgroud)

验证是否正确设置了 JAVA_HOME 环境变量:

$ echo $JAVA_HOME
Run Code Online (Sandbox Code Playgroud)

您应该会看到 Java 安装的路径:

/usr/lib/jvm/java-11-openjdk-amd64
Run Code Online (Sandbox Code Playgroud)

作为参考,您可以点击下面的链接 如何在 Ubuntu 20.04 上安装 Java

  • 感谢你的回答。但我实际上并没有要求这个,特别是 Linux 安装过程。 (2认同)