在 Windows 10 上的 WSL2 上使用 JDK 的正确方法是啥?
Posted
技术标签:
【中文标题】在 Windows 10 上的 WSL2 上使用 JDK 的正确方法是啥?【英文标题】:What is the proper way of using JDK on WSL2 on Windows 10?在 Windows 10 上的 WSL2 上使用 JDK 的正确方法是什么? 【发布时间】:2020-12-31 03:25:54 【问题描述】:我已经在 WSL 上安装了 Ubuntu 20.4 LTS。我的 Windows 10 已经安装了 JDK。我需要在 WSL 上的 ubuntu 上安装 JDK,还是可以在 Ubuntu 中使用 Windows 10 JDK?您如何在 WSL 上进行 Java 编程?哪个是正确的方法?
我只是想知道是否需要在 Linux 上重新安装所有开发工具和二进制文件,这会不会占用大量空间并占用大量 CPU/Ram 资源?
【问题讨论】:
安装的东西不会占用 CPU/RAM,除非你使用它们——它们只会占用空间。 是的,但是在 wsl 上运行 JDK 和在 windows 上运行 JDK 不会占用 CPU/RAM?但是,是的,我明白你在说什么,你是对的 对于它的价值,here 是一篇比较原生 JDK 与 WSL2 jdk 在命令行和 IntelliJ 内部的性能的中等帖子。与往常一样,您的里程可能会因您的配置而异 【参考方案1】:以具有 sudo 权限或 root 的用户身份运行以下命令来更新包索引并安装 OpenJDK 11 JDK 包:
$ sudo apt update
$ sudo apt install openjdk-11-jdk
安装完成后,您可以通过检查Java版本来验证它:
$ java -version
输出应如下所示:
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)
设置 JAVA_HOME 环境变量: OpenJDK 11 位于 /usr/lib/jvm/java-11-openjdk-amd64/bin/java
找到首选 Java 安装路径后,打开 /etc/environment 文件:
$ sudo nano /etc/environment
假设您要将 JAVA_HOME 设置为指向 OpenJDK 11,请在文件末尾添加以下行:
JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"
要使更改在您当前的 shell 上生效,您可以注销并登录或运行以下源命令:
$ source /etc/environment
验证 JAVA_HOME 环境变量是否设置正确:
$ echo $JAVA_HOME
您应该会看到 Java 安装的路径:
/usr/lib/jvm/java-11-openjdk-amd64
作为参考,您可以点击下面的此链接 How to Install Java on Ubuntu 20.04
【讨论】:
感谢您的回答。但我实际上并没有要求这样做,特别是 Linux 安装过程。【参考方案2】:在 WSL 上安装或使用 Java 没有“适当”的方式(如 支持 或 推荐 JDK 提供商)。我找不到任何官方建议。
但是,可以从 WSL 安装和使用 Oracle JDK for Windows 安装,或者从 Ubuntu 包管理器将 OpenJDK Java 安装到您的 WSL 世界中。
我只是想知道是否需要在 Linux 上重新安装所有开发工具和二进制文件,这会不会占用大量空间并占用大量 CPU/Ram 资源?
见上文。但请注意,如果您运行两种 JVM同时,您只会“占用 CPU/RAM”。
参考资料:
Installing Oracle JDK on Windows subsystem for Linux Java JDK 11 install script for Windows Subsystem for Linux (WSL) Windows Subsystem for Linux Java Setup ... 使用 Ubuntu 软件包系统。(如果以上内容不能解决您的问题,还有更多关于此主题的文章。)
【讨论】:
是的,你是对的,在 Windows 或 Oracle 上似乎没有关于此的文档。那么,您是说我可以在 Windows 和 WSL 中同时使用 JDK 而无需担心?顺便说一句,非常感谢您的回答。 这就是我要说的。 (或者更准确地说,这就是其他人所说的。)【参考方案3】:我们可以在 wsl2 中使用那个 Windows JDK。我们应该将此添加到/etc/environment
JAVA_HOME=/mnt/c/Program Files/Java/jdk-11.0.8/bin/
通过添加这个 bin 文件夹,我们可以运行常规命令,但附加 .exe 格式,例如:javac.exe hello.java
java.exe hello.java
如果您不喜欢这种方式,请添加如下别名:
alias java='java.exe'
alias javac='javac.exe'
我认为我们可以使用任何这样的 Windows 程序 :)
【讨论】:
以上是关于在 Windows 10 上的 WSL2 上使用 JDK 的正确方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章
对于使用 WSL2 进行签名的 git 提交,Windows 10 上的 Visual Studio Code 中没有 GPG 密码提示
带有 VSCode + WSL2 + Docker 的 Windows 上的 Git + SSH 密钥问题
断点无法通过 Windows 10 和 WSL2 上的 Visual Studio Code 在 Chrome 中调试 React 应用程序