JDKが必要になったので鯖に入れてみたのだけど、Hello Worldでコケたのでメモ。
初歩的なことなのだけど。
jdk-6u6-linux-i586-rpm.binとかを手に入れてきて、実行権限を付けてrootで実行してやればいい。
最初に規約に同意するためにyesって打つ位か。お手軽~。
問題はここから。標準ではGNUのjavaがパスに指定されており、Sunのjavacでコンパイルしたものをjavaコマンドで実行するとjava.lang.ClassFormatError (unrecognized class file version)が発生する。
$ java -version
java version "1.5.0"
gij (GNU libgcj) version 4.1.2 20070925 (Red Hat 4.1.2-27)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
解決法は以下のとおり
$ sudo /usr/sbin/alternatives --install /usr/bin/java java /usr/java/jdk1.6.0_06/bin/java 2
$ sudo /usr/sbin/alternatives --config java
2 プログラムがあり 'java' を提供します。
選択 コマンド
-----------------------------------------------
*+ 1 /usr/lib/jvm/jre-1.5.0-gcj/bin/java
2 /usr/java/jdk1.6.0_06/bin/java
Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:2
$ java -version
java version "1.6.0_06"
Java(TM) SE Runtime Environment (build 1.6.0_06-b02)
Java HotSpot(TM) Client VM (build 10.0-b22, mixed mode, sharing)
これでおっけー!
hogehoge.javaというソースをjavacでコンパイルするとhogehoge.classというのが出来るのだが、実行時は
$ java hogehoge.class
ではなく
$ java hogehoge
だそうだ。
とりあえずこんな所かな。