いままで 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 で動くようになった。

tags: debian java openjdk tomcat

Posted by NI-Lab. (@nilab)