« 2009年03月 | メイン | 2009年05月 »

2009年04月06日

64bitサーバへのJ2EE 5のインストール

CentOS 5.3(x86_64)環境にJ2EE 5(GlassFish Java EE)のJDKなし版をインストールしたときにハマったこと。
まず最初に、J2EEはlibstdc++5を必要とするので、このライブラリを含むcompat-libstdc++-33パッケージをインストールします。

# yum install compat-libstdc++-33

続いてJ2EEのインストールを実行します。
ちなみに、エラーメッセージは端末エミュレータの文字コードをEUCにしないと見れません。

# chmod 755 java_ee_sdk-5_07-linux-nojdk-ml.bin
# ./java_ee_sdk-5_07-linux-nojdk-ml.bin -console

すると、、、

使用可能なディスク容量をチェックしています...
Java(TM) 2 Runtime Environment をチェックしています...
Java(TM) 2 Runtime Environment ファイルを抽出しています...
エラー: 必要なバージョンの Java(TM) 2 Runtime Environment が
見つかりませんでした。
このアプリケーションには、バージョン 1.5 以上の Java(TM) 2
実行時環境が必要です。必要な Java(TM) 2 実行時環境がインストール
されていない場合、次の Web サイトからダウンロードできます:
http://java.sun.com/j2se
また、必要な Java(TM) 2 実行時環境がすでにインストールされて
いる場合は、次の使用法でこのアプリケーションを再実行して
みてください:
'java_ee_sdk-5_07-linux-nojdk-ml.bin' -javahome \

なるほど、J2EEのインストーラはJavaの実行環境が必要なのですね。
すでにJDK 6 Update 13(x86_64)をインストール済みだったので、パスを指定して実行します。

# chmod 755 java_ee_sdk-5_07-linux-nojdk-ml.bin
# ./java_ee_sdk-5_07-linux-nojdk-ml.bin \
-console -javahome /usr/local/jdk1.6.0_13

そうすると、、、

使用可能なディスク容量をチェックしています...
Java(TM) 2 Runtime Environment をチェックしています...
Java(TM) 2 Runtime Environment ファイルを抽出しています...
インストールファイルを抽出しています...
Java(TM) 2 Runtime Environment を起動しています...
Attach to native process failed
一時ファイルを削除しています...

やっぱり途中で失敗してしまいます。
しょうがないので、Googldeで'Attach to native process failed java install'で検索すると、、、出ました。

http://forums.sun.com/thread.jspa?threadID=5226774&start=15

the installer requires 32-bit JDK on a 64-bit system.

ということで、J2EEのインストーラは「32bitの」JDKが必要なのですね。
手元にインストーラがあったJDK 6 Udpate 12(i586)をインストールしました。

-javahomeオプションで、32bit版JDKのディレクトリを指定して再度J2EEのインストールにチャレンジ。

# chmod 755 java_ee_sdk-5_07-linux-nojdk-ml.bin
# ./java_ee_sdk-5_07-linux-nojdk-ml.bin \
-console -javahome /usr/local/jdk1.6.0_12

これで、無事インストーラが起動しました。
インストーラは日本語で対話形式となっていますが、こちらはEUCではなくてUTF-8ですので要注意。

また、JDKなし版のせいか、途中でApplication Serverが使用するJDKについて確認がありますが、こちらはJ2EEのインストール(のみ)に使用した32bit版ではなくて、64bit版を使用したいので、そちらのディレクトリを指定します。

Sun Java System Application Server は JDK を必要とします。
JDK 5.0 以降へのパスを指定してください。
  [/usr/local/jdk1.6.0_12] {"<" 戻る,"!" 終了}
  /usr/local/jdk1.6.0_13


以上