简体   繁体   中英

Java Applet Embedded in HTML Causes InvocationTargetException

I have the following HTML for embedding my Java applet:

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

The applet does not work and I am getting the following error in the console:

java.lang.reflect.InvocationTargetException at com.sun.deploy.util.DeployAWTUtil.invokeAndWait(DeployAWTUtil.java:116) at sun.plugin2.applet.Plugin2Manager.runOnEDT(Plugin2Manager.java:3606) at 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) Caused by: java.lang.ClassCastException: MyClass cannot be cast to java.applet.Applet at sun.plugin2.applet.Plugin2Manager$13.run(Plugin2Manager.java:3119) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:199) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:715) at java.awt.EventQueue.access$400(EventQueue.java:82) at java.awt.EventQueue$2.run(EventQueue.java:676) at java.awt.EventQueue$2.run(EventQueue.java:674) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:86) at j ava.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) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188) at java.awt.EventDispatchThread.run(EventDispatchThread.java:122) Exception: java.lang.reflect.InvocationTargetException

What is causing this?

Thank you for your help.

Looking your error I see:

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

Probably the JVM plugin is not loading your class correctly, I think that you have to use archive parameter instead of URL in order to specify the path to your applet classes, if is the case in code parameter you must specify the complete path mypackage.MyClass, and be sure that your applet main class extends javax.swing.JApplet or java.applet.Applet.

Also I recommend you to use < Object> and < embed> instead of < applet> because is deprecated in html4 and html5 specification:

Hope this helps,

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM