いままで Tomcat 6 を OpenJDK 6 で動かしていた。 OpenJDK 7 で動かすようにしてみる。
Debian パッケージの依存関係を調べてみると、 Tomcat 6 は OpenJDK 6 でも OpenJDK 7 でも動くようになっているので問題なさそう。
参考情報⇒ Debian -- wheezy の tomcat6-common パッケージに関する詳細
現時点で Tomcat 6 の設定ファイル /etc/default/tomcat6 には、
JAVA_HOME=/usr/lib/jvm/default-java
と設定されている。
/usr/lib/jvm/default-java は OpenJDK 6 へのシンボリックリンクになっている。
# ls -la /usr/lib/jvm
合計 48
drwxr-xr-x 6 root root 4096 4月 20 10:49 .
drwxr-xr-x 69 root root 20480 4月 21 10:13 ..
-rw-r--r-- 1 root root 2387 7月 12 2013 .java-1.6.0-openjdk-amd64.jinfo
-rw-r--r-- 1 root root 2439 7月 3 2013 .java-1.7.0-openjdk-amd64.jinfo
lrwxrwxrwx 1 root root 24 3月 8 10:22 default-java -> java-1.6.0-openjdk-amd64
lrwxrwxrwx 1 root root 20 7月 12 2013 java-1.6.0-openjdk-amd64 -> java-6-openjdk-amd64
lrwxrwxrwx 1 root root 20 7月 3 2013 java-1.7.0-openjdk-amd64 -> java-7-openjdk-amd64
drwxr-xr-x 5 root root 4096 4月 8 21:46 java-6-openjdk-amd64
drwxr-xr-x 3 root root 4096 4月 8 21:46 java-6-openjdk-common
drwxr-xr-x 7 root root 4096 4月 21 10:08 java-7-openjdk-amd64
drwxr-xr-x 3 root root 4096 4月 20 10:49 java-7-openjdk-common
試しに、 update-alternatives や update-java-alternatives コマンドで標準的に使われる Java を OpenJDK 7 に切り替えてみたが、 /usr/lib/jvm/default-java は java-1.6.0-openjdk-amd64 へのシンボリックのままだった。
/usr/lib/jvm/default-java は default-jre-headless パッケージで管理されている。
# apt-file search /usr/lib/jvm/default-java
default-jre-headless: /usr/lib/jvm/default-java
Debian wheezy では default-jre-headless は openjdk-6-jre-headless を指している。これはどうやら変化しないっぽい。
標準的な Java または Java 互換のランタイム (ヘッドレス)
本パッケージは、本アーキテクチャで推奨される Java ランタイム、または Java 互換のランタイムを示しています。amd64 では、当該ランタイムは openjdk-6-jre-headless です。 本パッケージは、実行時にグラフィカルな表示を必要としないパッケージの依存関係として利用されます。
Debian -- wheezy の default-jre-headless パッケージに関する詳細
となると、対応方法としては JAVA_HOME に明示的に OpenJDK 7 をバージョン固定で指定するか、あるいは強引に default-java のシンボリックリンク先を OpenJDK 7 に変更するかどちらか。。。
けっきょく、 Tomcat 6 の設定ファイル /etc/default/tomcat6 に、
JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
と指定して、 Tomcat 6 を再起動。
# /etc/init.d/tomcat6 stop
[ ok ] Stopping Tomcat servlet engine: tomcat6.
# /etc/init.d/tomcat6 start
[ ok ] Starting Tomcat servlet engine: tomcat6.
これで、無事に Tomcat 6 が OpenJDK 7 で動くようになった。
-
Ref.
- [ヅ] Debian wheezy の Tomcat 6 で OpenJDK 6 (2014-04-17)
- [ヅ] Debian wheezy の Java Runtime を OpenJDK 7 に変更する (2014-04-20)
tags: debian java openjdk tomcat
Posted by NI-Lab. (@nilab)