java.lang.ClassFormatErrorで困ってた

以下のようなエラーが出て、途方に暮れていた。

Exception in thread "main" java.lang.ClassFormatError: HelloWorld (unrecognized class file version)


調べていると、以下のURLに行き着いた。
http://java-house.jp/ml/archive/j-h-b/004955.html#body
書かれてあることに当てはまっていた。
というのもファイルはftp経由で持ってきていた。しかも、asciiとかbinaryとか考えずに。
クラスファイルが化けているかもしれないと、すべてコンパイルしなおした。


でも、エラーが出る。



次に、以下のようなURLを発見して解決しました。
http://www.simazaki.com/~izumi/blog/archives/2007_5_21_470.html
原因はSunのjavaではなく、GNUのgijが動いていることらしい。

ということで、Sunのjavaに切り替えた。

[root]# /usr/sbin/alternatives --install /usr/bin/java java /usr/java/jdk1.6.0_12/bin/java 2
[root]# /usr/sbin/alternatives --config java

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

  選択       コマンド
-----------------------------------------------
*+ 1           /usr/lib/jvm/jre-1.5.0-gcj/bin/java
   2           /usr/java/jdk1.6.0_12/bin/java

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