JOSM を起動するとスプラッシュ画面に次のようなメッセージが><
JOSM – Java OpenStreetMap エディタ
このバージョンのJavaはもうすぐサポート対象から外れます。 Java 8以上にアップグレードしてください!
現在利用している Java は Debian stretch のパッケージで導入した Oracle Java 7 です.OpenJDK 7 でも同じメッセージが表示されます.
ディストリビューションがサポートしている間は脆弱性とかは修正されるだろうけど JOSM 側でサポート打ち切る可能性もあるので Java 8 を使えないか確認してみます.
% where java /usr/bin/java % /usr/bin/java -version java version "1.7.0_25" Java(TM) SE Runtime Environment (build 1.7.0_25-b15) Java HotSpot(TM) 64-Bit Server VM (build 23.25-b01, mixed mode) % dpkg -l oracle-java7-jdk|grep ^ii ii oracle-java7-jdk 7u25 amd64 Java(TM) JDK, Standard Edition, Oracle(TM)
Oracle Java は未だパッケージにないけど OpenJDK 8 は存在するよう.
% apt-cache search oracle-java oracle-java7-jdk - Java(TM) JDK, Standard Edition, Oracle(TM) % apt-cache search openjdk-8 openjdk-8-jre-jamvm - Alternative JVM for OpenJDK, using JamVM openjdk-8-dbg - OpenJDK ベースの Java ランタイム (デバッグシンボル) openjdk-8-demo - OpenJDK ベースの Java ランタイム (デモおよびサンプルファイル) openjdk-8-doc - OpenJDK 開発キット (JDK) ドキュメント openjdk-8-jdk - OpenJDK 開発キット (JDK) openjdk-8-jre - OpenJDK Java ランタイム - Hotspot JIT 版 openjdk-8-jre-headless - OpenJDK Java ランタイム - Hotspot JIT 版 (ヘッドレス) openjdk-8-jre-zero - Zero/Shark を用いた OpenJDK 用の代替 JVM openjdk-8-source - OpenJDK 開発キット (JDK) ソースファイル
OpenJDK 8 を導入してこのシステムの規定値に設定します.
% sudo apt install openjdk-8-jre % sudo update-alternatives --config java alternative java (/usr/bin/java を提供) には 4 個の選択肢があります。 選択肢 パス 優先度 状態 ------------------------------------------------------------ 0 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1071 自動モード 1 /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java 1061 手動モード 2 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1071 手動モード 3 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1069 手動モード * 4 /usr/lib/jvm/jdk-7-oracle-x64/jre/bin/java 317 手動モード Press <enter> to keep the current choice[*], or type selection number: 3 update-alternatives: /usr/bin/java (java) を提供するためにマニュアルモードで /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java を使います % where java /usr/bin/java % /usr/bin/java -version openjdk version "1.8.0_72-internal" OpenJDK Runtime Environment (build 1.8.0_72-internal-b05) OpenJDK 64-Bit Server VM (build 25.72-b05, mixed mode) % /usr/bin/java -jar ~/bin/josm-latest.jar
無事起動して,警告メッセージは表示されなくなりました :)
もし,他の Java アプリケーションが OpenJDK 8 を嫌がる場合はそちらを優先して JOSM は以下のようにして起動するようにしてもいいかもしれません.
% /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java -jar ~/bin/josm-latest.jar
Javaの切り替えならupdate-alternativesより、関連するものをすべて切り替えてくれる専用のupdate-java-alternativesかな。
で、Oracle Javaはライセンスの関係でリポジトリには入らないので、Oracleからバイナリをダウンロードしてjava-packageパッケージに入ってるmake-jpkgでdebパッケージを作成、インストールします。