代码之家  ›  专栏  ›  技术社区  ›  Mandroid

wsl:“哪个java/whereis java”提供了错误信息

  •  0
  • Mandroid  · 技术社区  · 3 年前

    我安装了wsl2,然后安装了jdk 17。现在我想配置JAVA_HOME。 当我这样做时:

    $ which java
    /usr/bin/java
    $ whereis java
    java: /usr/bin/java
    

    但是我在/usr/bin中没有看到任何java文件夹。

    相反,我在/usr/lib/jvm中找到了java:

    $ pwd
    /usr/lib/jvm
    $ ls
    java-1.17.0-openjdk-amd64  java-17-openjdk-amd64
    

    为什么会这样?

    1 回复  |  直到 3 年前
        1
  •  1
  •   Erik Pragt    3 年前

    因为 java 不是文件夹,它是一个二进制文件,可能是指向中某个二进制文件的链接 jvm 目录您可以使用 ls -al /usr/bin/java

    JAVA_HOME不应该指向JAVA二进制文件,而是指向您在第二个示例中列出的目录之一,例如 JAVA_HOME=/usr/lib/jvm/java-1.17.0-openjdk-amd64 .

    我建议你看看 jenv 顺便说一句,如果您需要的话,它在切换JDK方面有很大帮助。