配置WSL2中的JAVA环境以配合VSCode的Remote WSL扩展功能

2022-06-23 12:58:58

VSCode的Remote WSL扩展可以让WSL2在终端中通过code指令启动Windows侧的VSCode,且体验与原生Linux基本无二;

但是进一步使用后发现Remote WSL配合Language Support for Java by Red Hat(以下称JAVA语法支持)并不能正常解析WSL2中的java源代码;通过查询JAVA语法支持扩展的介绍可知,这是由于WSL2环境中缺少JDK11或更高的环境支持;

以Ubuntu分发版为例,安装OpenJDK11即可:

sudoaptinstall openjdk-11-jdk

然后查找到java可执行文件的路径:

#先确认java可执行文件的直接路径
ryan /mnt/d $which java
/usr/bin/java#查看该路径,发现是软连接
ryan /mnt/d $ls -al /usr/bin/java
lrwxrwxrwx1 root root22 Jun2410:56 /usr/bin/java -> /etc/alternatives/java#进一步追踪,知道发现真正存放文件的路径
ryan /mnt/d $ls -al /etc/alternatives/java
lrwxrwxrwx1 root root43 Jun2410:56 /etc/alternatives/java -> /usr/lib/jvm/java-11-openjdk-amd64/bin/java#这就是java可执行文件真正存放的地址
ryan /mnt/d $ls -al /usr/lib/jvm/java-11-openjdk-amd64/bin/java
-rwxr-xr-x1 root root14560 Apr2117:15 /usr/lib/jvm/java-11-openjdk-amd64/bin/java

找到JDK的路径以后,有两种办法可以配置:

  1. 设置JDK_HOME/JAVA_HOME环境变量;
  2. 设置VSCode中Remote-WSL的settings.json;

前者比较简单,就不赘述了;
后者可能更适合某些复杂环境的开发(比如需要多个JDK版本切换的),因此着重介绍下第二种方式:

  • 打开VSCode
    菜单中选择:File -> Preferences -> Settings
    在这里插入图片描述
  • 弹出的设置界面中选择Remote选项卡,在Extensions -> JAVA中随意找到一个可以点击的Edit in settings.json连接,点击进入settings.json的编辑界面:
    在这里插入图片描述
  • 插入如下代码:
"java.configuration.runtimes":[{"name":"JavaSE-11","path":"/usr/lib/jvm/java-11-openjdk-amd64/",//这个就是刚才查找的OpenJDK11的路径"default":true},],

完成后效果实例如图:在这里插入图片描述

  • 重启VSCode即可生效;
  • 作者:Ryan ZHENG
  • 原文链接:https://blog.csdn.net/u014175785/article/details/118185444
    更新时间:2022-06-23 12:58:58