2

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

4

2 に答える 2

2

テストを簡単にするには、次のように変更します。

<!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>

これに:

<html>
<head>
  <meta charset="utf-8"/>
  <title>Test</title>
</head>
<body>
  <p>
    <applet code="Test" width="50" height="70">
      Test failed.
    </applet>
  </p>
</body>
</html>

アップデート1

最近では、 deployJava.jsがアプレットを埋め込む正しい方法であることに注意してください。ブラウザが必要とするオブジェクトまたは埋め込み要素を書き込み、正しく実行することを目的としています。

于 2011-09-16T06:48:59.247 に答える
0

アプレットが表示されないようです。

  1. アーカイブパラメータは必須ですjarへのパスを正しく指定する必要があります。
  2. パスを指定しない場合は、サブディレクトリではなく、テストページと同じディレクトリにあると想定されます。

また、jarにはTest.classが含まれていると仮定します:)

于 2011-09-15T21:59:25.110 に答える