Javaモジュールをリロードする方法

Javaモジュールをリロードする方法

私たちは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 -rsource

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現在のセッションのシェルを実行して、さまざまな実行可能ファイルが実際にどこにあるかについての以前のアイデアを忘れて再起動できます。バージョン10.0.1がまだインストールされている最新バージョンの場合、このコマンドを使用すると、javaシェルはその場所をキャッシュし、ログアウト/ログインまたは再起動時に通知があるまで使用できます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>

関連情報