2014-03-05 31 views
0

我有以下的HTML嵌入我的Java小程序:Java小程序在HTML中嵌入導致的InvocationTargetException

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

小程序不工作,我得到在控制檯以下錯誤:

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.Plugin2Manag er.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.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 Me (java.security.AccessControlContext)中的$ 1.doIntersectionPrivilege(AccessControlContext.java:86) $ 1.doIntersectionPrivilege(AccessControlContext.java:97) at java.awt.EventQueue $ 3.run(EventQueue.java :690) 在java.awt.EventQueue中的$ 3.run(EventQueue.java:688) 在java.security.AccessController.doPrivileged(本機方法) 在java.security.AccessControlContext $ 1.doIntersectionPrivilege(AccessControlContext.java:86) 在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) 在java.awt.EventDispatchThread.run(EventDispatchThread.java:122) 例外:java.lang.reflect.InvocationTargetException

是什麼原因造成的?

謝謝你的幫助。

回答

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>和<嵌入>而不是< APPLET>因爲棄用html4html5規格:

希望這有助於

+0

謝謝你的回覆! :)我有兩個問題。首先,javax.swing.JApplet和java.applet.Applet之間有什麼區別,我應該使用哪一個?其次,只有主類必須是javax.swing.JApplet或java.applet.Applet的擴展嗎?還是所有的輔助班? –

+0

嗨,只有主類必須是javax.swing.JApplet或java.applet.Applet的擴展。 JApplet是Applet的擴展,使您可以使用Swing組件。 JApplet也是一個更新的類。下面是一個示例,您可以在其中找到如何使用JApplet定義applet子類:http://docs.oracle.com/javase/tutorial/deployment/applet/subclass.html – albciff

相關問題