2016/08/04
最新版の update-java-alternatives は javac を更新してくれない
2018/2/12 追記
java-common 0.59 で対応されたようです。
ただし、java-common 0.59 の適用は Ubuntu 17.10 からです。ご注意を。
ただし、java-common 0.59 の適用は Ubuntu 17.10 からです。ご注意を。
@[Ubuntu](http://www.ubuntu.com/) 16.04 LTS 先日、[update-java-alternatives に Oracle java も追加する](https://kokufu.blogspot.jp/2016/07/update-java-alternatives-oracle-java.html) という投稿をしたのですが、 使っていると想定した動作をしていないことがわかりました。 ### 新規導入の jdkhl が反映されない `update-java-alternatives --set xxx` を実行しても、javac などの一部のアプリケーションが更新されないのです。 `/usr/lib/jvm/.x.jinfo` を何度も確認しましたが、書き方に問題は無い様子。 `/usr/sbin/update-java-alternatives` はシェルスクリプトなので、中をのぞいて見ると、`jdkhl` という項目を無視しているのがわかりました。 この項目は最近追加されたもので、それが反映されていないようです。 ググッてみたら、バグのようですね。 > 参考 > [Bug #1603692 “java-update-alternatives doesn't recognize jdkhl l...” : Bugs : java-common package : Ubuntu](https://bugs.launchpad.net/ubuntu/+source/java-common/+bug/1603692) ### 修正方法 本体を直接修正するのは避けたいので、`~/bin` 等にスクリプトをコピーして編集するのが良いかと思います 。 ```console `gutter: false; $ cp /usr/sbin/update-java-alternatives ~/bin/my-update-java-alternatives $ vi ~/bin/my-update-java-alternatives ``` L. 66 ```shell `first-line: 66; which='^(hl|jre|jdk|plugin|DUMMY) ' if [ -n "$hlonly$jreonly$pluginonly" ]; then ``` 以下のように、`jdkhl` を追加します。 ```shell `first-line: 66; which='^(hl|jre|jdkhl|jdk|plugin|DUMMY) ' if [ -n "$hlonly$jreonly$pluginonly" ]; then ``` ### 実行時はフルパスで `sudo` 実行時は、環境変数 `PATH` がリセットされてしまう場合があるので、フルパス指定するようにしましょう 。 ```console `gutter: false; $ sudo ~/bin/my-update-java-alternatives --set java-1.8.0-openjdk-amd64 ``` いずれにしても、この対策は一時的なものです。本体の修正を待ちましょう 。
0 件のコメント:
コメントを投稿