NarwhalをCentOS上で動かす時のメモ

CentOS release 5.5 (Final)

CentOSでNarwhalを動かそうと思ったら

$ js
Error occurred during initialization of VM
java/lang/NoClassDefFoundError: java/lang/Object

というエラーが出ます。rhinoがOpenJDKでは上手く動かないのが原因みたいです。

という事でOracleからJDKをとってきて、こちらをデフォルトにする必要があります。

1.JDKのrpm.binファイルをダウンロード
http://www.oracle.com/technetwork/java/javase/downloads/index.html

適当なディレクトリで実行する。

# chmod +x jdk-6u21-linux-i586-rpm.bin 
# ./jdk-6u21-linux-i586-rpm.bin 

2.環境変数を設定する。

# vi /etc/profile

----追記
export JAVA_HOME=/usr/java/jdk1.6.0_21
export PATH=/usr/java/jdk1.6.0_21/bin:$PATH
export CLASSPATH=.:/usr/java
# alternatives --install /usr/bin/java java /usr/java/jdk1.6.0_21/bin/java 20000
# alternatives --install /usr/bin/javac javac /usr/java/jdk1.6.0_21/bin/javac 20000

3."2"をデフォルトのjava、javacに設定する

# alternatives --config java

2 プログラムがあり 'java' を提供します。

  選択       コマンド
-----------------------------------------------
 + 1           /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java
*  2           /usr/java/jdk1.6.0_21/bin/java

Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:2

# alternatives --config javac

2 プログラムがあり 'javac' を提供します。

  選択       コマンド
-----------------------------------------------
 + 1           /usr/lib/jvm/java-1.6.0-openjdk.x86_64/bin/javac
*  2           /usr/java/jdk1.6.0_21/bin/javac

Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:2

これで、narwhalのjsコマンドが利用可能になります。

$ js
Rhino 1.7 release 3 PRERELEASE 2009 12 12
js> print('Hello')
Hello

$ js path/to/narwhal/examples/hello 
Hello, World!