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 16.04 LTS
先日、update-java-alternatives に Oracle java も追加する という投稿をしたのですが、 使っていると想定した動作をしていないことがわかりました。
新規導入の jdkhl が反映されない
update-java-alternatives --set xxx
を実行しても、javac などの一部のアプリケーションが更新されないのです。
/usr/lib/jvm/.x.jinfo
を何度も確認しましたが、書き方に問題は無い様子。
/usr/sbin/update-java-alternatives
はシェルスクリプトなので、中をのぞいて見ると、jdkhl
という項目を無視しているのがわかりました。
この項目は最近追加されたもので、それが反映されていないようです。
ググッてみたら、バグのようですね。
修正方法
本体を直接修正するのは避けたいので、~/bin
等にスクリプトをコピーして編集するのが良いかと思います1。
$ cp /usr/sbin/update-java-alternatives ~/bin/my-update-java-alternatives $ vi ~/bin/my-update-java-alternatives |
L. 66
66 67 | which = '^(hl|jre|jdk|plugin|DUMMY) ' if [ -n "$hlonly$jreonly$pluginonly" ]; then |
以下のように、jdkhl
を追加します。
66 67 | which = '^(hl|jre|jdkhl|jdk|plugin|DUMMY) ' if [ -n "$hlonly$jreonly$pluginonly" ]; then |
実行時はフルパスで
sudo
実行時は、環境変数 PATH
がリセットされてしまう場合があるので、フルパス指定するようにしましょう2。
$ sudo ~/bin/my-update-java-alternatives --set java-1.8.0-openjdk-amd64 |
いずれにしても、この対策は一時的なものです。本体の修正を待ちましょう3。
0 件のコメント:
コメントを投稿