ChromeでJavaアプレットを実行するのに苦労しています。Firefox、Opera、Safariでは正常に動作しますが、クラスローダーはクラスを見つけることができません。
これが私のテストアプレットクラスです(単純にするためにパッケージ宣言も削除しました):
import java.awt.Graphics;
import java.applet.Applet;
public class Test extends Applet
{
public void init() { repaint(); }
public void paint( Graphics g ) {
g.drawOval(10, 10, 30, 50);
g.drawLine(15, 30, 22, 32);
g.fillOval(28, 28, 7, 5);
g.drawArc(15, 20, 20, 35, 210, 120);
}
}
最小限のテストページは次のとおりです。
<!doctype html>
<html><head>
<meta charset="utf-8"/>
<title>Test</title>
</head><body>
<p>
<object type="application/x-java-applet" width="50" height="70">
<param name="code" value="Test" />
Test failed.
</object>
</p>
</body></html>
スタックトレースは次のとおりです。
java.lang.ClassNotFoundException: Test
at sun.plugin2.applet.Applet2ClassLoader.findClass(Applet2ClassLoader.java:252)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Plugin2ClassLoader.java:250)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Plugin2ClassLoader.java:180)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Plugin2ClassLoader.java:161)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Plugin2ClassLoader.java:687)
at sun.plugin2.applet.Plugin2Manager.createApplet(Plugin2Manager.java:3046)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Plugin2Manager.java:1498)
at java.lang.Thread.run(Thread.java:680)
を使用してクラスをコンパイルしjavac Test.java
、.classファイルを.htmlファイルと同じフォルダーに配置しました。繰り返しになりますが、これはFirefox、Safari、Operaの両方で正常に動作するので、Chromeではどうでしょうか。
jarを作成して追加しようとしました<param name="archive" value="Test.jar" />
が、役に立ちませんでした。
ああ、そして私が質問している間:タグ<param>
内のアプレットで使用できるパラメータをリストした公式の仕様はありますか?<object>
これはHTML5仕様には含まれていませんが、これは理にかなっていますが、Oracleは古い放棄された<applet>
タグを支持しているようで、厳密なHTML5を使用する必要があります。
環境
OSX10.7.1を実行しているMacBookPro
java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03-383-11A511)
Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02-383, mixed mode)
Google Chrome 13.0.782.220