0

我有以下 HTML 用于嵌入我的 Java 小程序:

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

小程序不起作用,我在控制台中收到以下错误:

java.lang.reflect.InvocationTargetException 在 com.sun.deploy.util.DeployAWTUtil.invokeAndWait(DeployAWTUtil.java:116) 在 sun.plugin2.applet.Plugin2Manager.runOnEDT(Plugin2Manager.java:3606) 在 sun.plugin2.applet。 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) at java.awt.EventQueue$3.run(EventQueue.java:690) at java.awt.EventQueue$3.run(EventQueue.java:688) at java.security.AccessController .doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:86) at java.awt.EventQueue.dispatchEvent(EventQueue.java:687) at 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) 在 java. 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。

另外我建议您使用 <Object> 和 <embed> 而不是 <applet> 因为在html4html5规范中已弃用:

希望这可以帮助,

于 2014-03-05T07:53:43.393 回答