2008/05/27(Tue)JavaApplet Trouble

2008/05/27 15:09 Languages::Java
Javaアプレットを書いていたのだけど、その検証作業でいろいろトラブったのでメモ。

「異なるバージョンのJavaが必要です。異なるバージョンのセッションを再ロードしますか?」

インストールされているJREが古いと出るようだ。Version 6 Update 6にしたら直った。
(正確なメッセージは忘れた)

IEでは動くアプレットが、Sleipnirでは灰色の塗りつぶしにしか表示されない

Sun Javaをインストールしても、SleipnirがMicrosoftのプラグインを使うことが原因らしい。
regsvr32 /u msjava.dllと実行してDLLレジストを解除してから、ブラウザを再起動すればよい。
これでも動かない場合は、インターネットオプションの詳細設定の中で、「<applet> に Java 2 v1.x.x_xx を使用(再起動が必要)」にチェックがついているかどうかチェック。

FreeBSDのappletviewerが文字化けする

メニューとステータスバーが豆腐になっていた。
appletviewerを起動するとき、-encoding EUC-JPをくっつけて起動すればよい。

2008/05/25(Sun)java on Fedora

2008/05/25 19:34 Languages::Java
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
だそうだ。


とりあえずこんな所かな。