我们正在构建一个java源代码。当我们使用 Ubuntu 的官方存储库构建它时,它实际上安装了 10.0.2。看
-------- which javac ---------------
/usr/lib/jvm/java-11-openjdk-amd64/bin/javac
-------- java -version ---------------
openjdk version "10.0.2" 2018-07-17
OpenJDK Runtime Environment (build 10.0.2+13-Ubuntu-1ubuntu0.18.04.4)
OpenJDK 64-Bit Server VM (build 10.0.2+13-Ubuntu-1ubuntu0.18.04.4, mixed mode)`
我们需要使用 java 11,因此我们按照我们的方式构建它。
下面我们想找到一种方法,可以在不重启的情况下重新加载java jdk。
我们想用以下shutdown -r
某种类型或某些内容替换:source
sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update
sudo apt-get install openjdk-11-jdk
shutdown -r
sudo update-alternatives --config java
sudo update-alternatives --config javac
因为重启后java -version
显示openjdk version '11.0.1" 2018-10-16
那会做什么呢?
答案1
不需要重新启动。
您的sudo update-alternatives --config java
命令实际上完成了将默认版本从一个 Java 版本切换到另一版本的大部分工作。但是,在该命令之后,您可能需要运行hash -r
以获取当前会话的 shell,以忘记各种可执行文件实际位置的旧想法并重新启动。如果java
在 10.0.1 版本仍然是最新安装的版本时使用该命令,shell 可能会缓存其位置并继续使用它,直到另有通知为止,无论是hash -r
退出/登录还是重新启动(对于此目的来说,这有点过分了) )。
如果您的朋友在登录脚本中添加了显式设置$JAVA_HOME
或任何其他相关环境变量的内容,则可能还需要注销并重新登录。
因此,我建议执行以下程序:
sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update
sudo apt-get install openjdk-11-jdk
sudo update-alternatives --config java
sudo update-alternatives --config javac
hash -r
java -version
<if still indicates an old version, then logout & login again>