一般的なJavaをダウンロードしたバイナリに置き換えるには?

一般的なJavaをダウンロードしたバイナリに置き換えるには?

Debian Stableで利用可能な最新openjdkバージョンは17

$ which -a java
/usr/bin/java
/bin/java
$ java --version
openjdk 17.0.8 2023-07-18
OpenJDK Runtime Environment (build 17.0.8+7-Debian-1deb12u1)
OpenJDK 64-Bit Server VM (build 17.0.8+7-Debian-1deb12u1, mixed mode, sharing)

すぐにリリースされるリリースをテストしたいので、21バイナリを直接ダウンロードしました。

$ curl https://download.java.net/java/GA/jdk21/fd2272bbf8e04c3dbaee13770090416c/35/GPL/openjdk-21_linux-x64_bin.tar.gz
$ tar -xzf openjdk-21_linux-x64_bin.tar.gz
$ cd jdk-21
$ ./bin/java --version
openjdk 21 2023-09-19
OpenJDK Runtime Environment (build 21+35-2513)
OpenJDK 64-Bit Server VM (build 21+35-2513, mixed mode, sharing)
$ which -a java
/usr/bin/java
/bin/java
$ java --version
openjdk 17.0.8 2023-07-18
OpenJDK Runtime Environment (build 17.0.8+7-Debian-1deb12u1)
OpenJDK 64-Bit Server VM (build 17.0.8+7-Debian-1deb12u1, mixed mode, sharing)

java私のすべてのスクリプトですべての項目を手動で編集する必要なく、新しいJavaバイナリを使用したいと思います。つまり、呼び出されるとjava新しいバイナリを実行したいと思います。にコピーjavaして貼り付けるだけで/usr/bin/在庫を交換できますか/bin/?つまり、これはうまくいくでしょうか?

$ mv ./bin/* /usr/bin/
$ mv ./bin/* /bin/

などjdk-21の他のフォルダもコピーする必要がありますか?一般的なJavaを置き換えると副作用はありますか?conflib

答え1

簡単な修正で十分PATHですrealpath ./bin

たとえば、 で~/.bashrc使用できますexport PATH="/home/yyhh344/Downloads/java-21/bin:$PATH"

また、設定JAVA_HOMEその他のJava環境変数あなたの使用量によって異なります。

関連情報