Linux多JDK环境下JAVA_HOME如何配置?update-java-alternatives能否自动设置?
相关问题解答
JAVA_HOME配置要求
你列出的三个JDK的实际安装路径都在输出的第三列,切换到对应版本时,JAVA_HOME必须配置为对应版本的完整安装路径,具体对应关系如下:
- 切换到java-1.8.0-openjdk-amd64时,JAVA_HOME设为
/usr/lib/jvm/java-1.8.0-openjdk-amd64 - 切换到java-1.11.0-openjdk-amd64时,JAVA_HOME设为
/usr/lib/jvm/java-1.11.0-openjdk-amd64 - 切换到java-16-oracle时,JAVA_HOME设为
/usr/lib/jvm/java-16-oracle
通常可以把JAVA_HOME的配置写到个人的shell配置文件(比如~/.bashrc、~/.zshrc)实现单用户生效,或者写到/etc/profile、/etc/environment实现全局生效,修改后执行source 对应配置文件路径即可立即生效。
update-java-alternatives能否自动设置JAVA_HOME
不支持。update-java-alternatives是Debian系发行版专门用来批量切换Java相关命令软链接的工具,它的作用范围仅限更新/usr/bin目录下java、javac、javadoc等数十个Java相关命令的软链接指向,完全不会修改任何环境变量配置,也不会主动设置JAVA_HOME的值。
如果想要实现切换JDK版本时自动同步JAVA_HOME,可以用两种方案实现:
- 直接把JAVA_HOME固定设置为
/usr/lib/jvm/default-java,大部分Debian/Ubuntu发行版会在你调用update-java-alternatives切换版本时,自动更新这个软链接的指向,不需要额外修改JAVA_HOME - 自己封装简单的shell脚本,执行
update-java-alternatives --set [JDK名称]切换版本后,自动替换配置文件里的JAVA_HOME值
内容的提问来源于stack exchange,提问作者user3565923
相关产品推荐
相关产品推荐

