0

Java アプレットを埋め込むための次の HTML があります。

<applet code="MyClass" URL="path/MyClass.class" height="200" width="400"></applet>

アプレットが機能せず、コンソールに次のエラーが表示されます。

com.sun.deploy.util.DeployAWTUtil.invokeAndWait(DeployAWTUtil.java:116) の java.lang.reflect.InvocationTargetException。 Plugin2Manager.createApplet(Plugin2Manager.java:3131) at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Plugin2Manager.java:1517) at java.lang.Thread.run(Thread.java:680) 原因: java.lang .ClassCastException: MyClass は java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:199) で sun.plugin2.applet.Plugin2Manager$13.run(Plugin2Manager.java:3119) で java.applet.Applet にキャストできません。 .awt.EventQueue.dispatchEventImpl(EventQueue.java:715) で java.awt.EventQueue.access$400(EventQueue.java:82) で java.awt.EventQueue$2.run(EventQueue.java:676) java.awt.EventQueue$2.run(EventQueue.java:674) で java.security.AccessController.doPrivileged(Native Method) で java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:86) で java.security で.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:97) で java.awt.EventQueue$3.run(EventQueue.java:690) で java.awt.EventQueue$3.run(EventQueue.java:688) で java.security.AccessController java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:86) の .doPrivileged(ネイティブ メソッド) java.awt.EventQueue.dispatchEvent(EventQueue.java:687) の java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java: 296) java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211) java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201) で java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196) で java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188) でawt.EventDispatchThread.run(EventDispatchThread.java:122) 例外: java.lang.reflect.InvocationTargetException

これは何が原因ですか?

ご協力ありがとうございました。

4

1 に答える 1

0

エラーを見ると、次のようになります。

Caused by: java.lang.ClassCastException: MyClass cannot be cast to java.applet.Applet 

おそらく、JVM プラグインがクラスを正しくロードしていません。アプレット クラスへのパスを指定するには、 URLの代わりにアーカイブパラメータを使用する必要があると思います。コードパラメータの場合は、完全なパス mypackage.MyClass を指定する必要があります。 、アプレットのメイン クラスが javax.swing.JApplet または java.applet.Applet を拡張していることを確認してください。

また、 html4およびhtml5仕様では非推奨になっているため、< applet> の代わりに < Object> と <embed> を使用することをお勧めします。

お役に立てれば、

于 2014-03-05T07:53:43.393 に答える