Skip to content

Ubuntu(TurnKey Linux) で Java 環境を OpenJDK ではなく Sun Java をデフォルトに + Tomcat も

Posted on:2011年6月5日 at 18:50

何かと便利な仮想アプライアンスライブラリ。

TurnKey Linux のものをよく使わせてもらっているが、Tomcat のオールインワン環境を提供している Tomcat Applicance では、JDK は OpenJDK を使っている。これを Sun Java 環境に変更し、併せて Tomcat も Sun Java で起動するように変更する。

Standalone Tomcat Appliance

このアプライアンスライブラリにはデフォルトで Tomcat 6.0.24MySQL 5.1 が含まれており、最低限の必要な設定も既に終えている。

使用している TurnKey Linux のバージョンは以下の通り。

# cat /etc/turnkey_version
turnkey-tomcat-11.1-lucid-x86
# cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=10.04
DISTRIB_CODENAME=lucid
DISTRIB_DESCRIPTION="Ubuntu 10.04.1 LTS"

Table of Contents

Open Table of Contents

OpenJDK から Sun Java へ変更

デフォルトでは以下の Java 環境となっている。

# java -version
java version "1.6.0_20"
OpenJDK Runtime Environment (IcedTea6 1.9.2) (6b20-1.9.2-0ubuntu1~10.04.1)
OpenJDK Client VM (build 19.0-b09, mixed mode, sharing)

Sun Java に切り替える。

まずは Sun Java のインストールから。

必要なレポジトリソースを追加し、アップデートしておく。

# echo "deb http://archive.canonical.com/ lucid partner" >> /etc/apt/sources.list.d/sources.list
# apt-get update

Sun Java のインストール。

# apt-get install sun-java6-jdk

デフォルトで使用される Java を Sun Java に変更しておく。

# update-alternatives --config java
There are 2 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                      Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-6-openjdk/jre/bin/java   1061      auto mode
* 1            /usr/lib/jvm/java-6-openjdk/jre/bin/java   1061      manual mode
  2            /usr/lib/jvm/java-6-sun/jre/bin/java       63        manual mode

Press enter to keep the current choice[*], or type selection number: 2
update-alternatives: using /usr/lib/jvm/java-6-sun/jre/bin/java to provide /usr/bin/java (java) in manual mode.

“Press enter to keep the current choice[*], or type selection number:” の問い合わせに Sun Java の 2 を入力している。

確認してみる。

# java -version
java version "1.6.0_24"
Java(TM) SE Runtime Environment (build 1.6.0_24-b07)
Java HotSpot(TM) Client VM (build 19.1-b02, mixed mode, sharing)

とりあえず OK だが、JAVA_HOME の設定も変更しておく。

# echo $JAVA_HOME
/usr/lib/jvm/java-6-openjdk

まだ OpenJDK の方を参照している。この環境変数を設定しているのは、/etc/environment になる。JAVA_HOME の値を /usr/lib/jvm/java-6-sun に変更しておく。変更箇所は以下の通り。

# git diff environment
diff --git a/environment b/environment
index 225ca6c..8c7937c 100644
--- a/environment
+++ b/environment
@@ -4,4 +4,4 @@ LC_ALL=C
 CATALINA_HOME="/usr/share/tomcat6"
 CATALINA_BASE="/var/lib/tomcat6"
 CATALINA_OPTS="-server -Xms384M -Xmx512M -XX:MaxPermSize=256M"
-JAVA_HOME="/usr/lib/jvm/java-6-openjdk"
+JAVA_HOME="/usr/lib/jvm/java-6-sun"

ちなみに、上記でもわかるように、TurnKey Linux では /etc 配下を git で管理している。変更履歴をキチンと管理できるので安心して設定変更が行える。

また、この /etc/environment にてロケールの設定も入っている。ロケールの設定に関して、OS 起動時に /etc/default/locale の設定で上書きされるのでこのままでもいいのだが、どこで悪さするかわからないので、LANGLC_ALL の設定も変更しておく。

ロケールの変更に関しては、

にも記載している。

最終的に /etc/environment は以下の内容になっている。

# cat /etc/environment
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"
LANG=ja_JP.UTF-8
LC_ALL=ja_JP.UTF-8
CATALINA_HOME="/usr/share/tomcat6"
CATALINA_BASE="/var/lib/tomcat6"
CATALINA_OPTS="-server -Xms384M -Xmx512M -XX:MaxPermSize=256M"
JAVA_HOME="/usr/lib/jvm/java-6-sun"

変更の反映は、一旦システムを再起動しておいた方が安心。

以上で OK。

Tomcat 側の設定

これまでの作業を行っておけば、特に必要はない。

念の為に確認してみる。

# /usr/share/tomcat6/bin/version.sh
Using CATALINA_BASE:   /var/lib/tomcat6
Using CATALINA_HOME:   /usr/share/tomcat6
Using CATALINA_TMPDIR: /var/lib/tomcat6/temp
Using JRE_HOME:        /usr/lib/jvm/java-6-sun
Using CLASSPATH:       /usr/share/tomcat6/bin/bootstrap.jar
Server version: Apache Tomcat/6.0.24
Server built:   December 10 2010 1755
Server number:  ...0
OS Name:        Linux
OS Version:     2.6.32-26-generic
Architecture:   i386
JVM Version:    1.6.0_24-b07
JVM Vendor:     Sun Microsystems Inc.

全て Sun Java に切り替わっている。