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

在Linux中设置JAVA_HOME不起任何作用

  •  0
  • xkkdd  · 技术社区  · 2 年前

    我的Debian12 PC上同时有java17和java11,我想默认使用java11。

    然而,在成功地设置了JAVA_HOME、PATH和JRE_HOME之后,我的PC告诉我默认情况下仍然使用java17。

    
    $ java -version
    
    openjdk version "17.0.11" 2024-04-16
    OpenJDK Runtime Environment (build 17.0.11+9-Debian-1deb12u1)
    OpenJDK 64-Bit Server VM (build 17.0.11+9-Debian-1deb12u1, mixed mode, sharing)
    

    我添加的设置 .bashrc :

    # >>> java >>>
    export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64/
    export JRE_HOME=$JAVA_HOME/jre
    export PATH=$PATH:$JAVA_HOME/bin
    # <<< java <<<
    

    这是我的终端输出

    $ echo $JAVA_HOME
    /usr/lib/jvm/java-11-openjdk-amd64/
    
    
    $ echo $JRE_HOME
    /usr/lib/jvm/java-11-openjdk-amd64//jre
    
    echo $PATH
    /home/MYUSER/.vscode-server/bin/dc96b837cf6bb4af9cd736aa3af08cf8279f7685/bin/remote-cli:/home/MYUSER/miniconda3/bin:/home/MYUSER/miniconda3/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/wsl/lib:/mnt/c/Windows/system32:/mnt/c/Windows:/mnt/c/Windows/System32/Wbem:/mnt/c/Windows/System32/WindowsPowerShell/v1.0:/mnt/c/Windows/System32/OpenSSH:/mnt/c/Program Files (x86)/NVIDIA Corporation/PhysX/Common:/mnt/c/Program Files/NVIDIA Corporation/NVIDIA NvDLISR:/mnt/c/Program Files/Docker/Docker/resources/bin:/mnt/c/Users/someone/AppData/Local/Microsoft/WindowsApps:/mnt/c/Users/someone/AppData/Local/Programs/Microsoft VS Code/bin:/opt/riscv/bin:/opt/riscv/bin:/home/MYUSER/apache-maven-3.9.7/bin:/usr/lib/jvm/java-11-openjdk-amd64/bin
    
    1 回复  |  直到 2 年前
        1
  •  1
  •   life888888    2 年前

    违约

    在您的机器中查找所有JDK。

    update-alternatives --config java
    

    配置

    sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-8-openjdk-amd64/bin/java 1081
    sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1101
    
    sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/java-8-openjdk-amd64/bin/javac 1081
    sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/java-11-openjdk-amd64/bin/javac 1101
    

    切换JDK

    sudo update-alternatives --config java
    

    或安装SDKMAN

    删除所有JDK。

    安装SDKMAN。

    列出所有java

    sdk list java
    

    安装JDK

    sdk install java 11.0.23-tem
    sdk install java 17.0.11-tem
    sdk install java 22.0.1-oracle
    

    切换JDK版本

    切换到Temurin JDK 17.0.11

    sdk default java 17.0.11-tem
    

    切换到Oracle JDK 22.0.1

    sdk default java 22.0.1-oracle
    

    也可以使用sdkman安装maven和kotlin以及gradle。

    您不需要手动更改配置文件中的JAVA_HOME、PATH。(.bashrc或其他)。