为什么我得到java.lang.reflect.InvocationTargetException在浏览器中,但不是在日食applet浏览器? [英] Why do I get java.lang.reflect.InvocationTargetException in browser but not in eclipse applet viewer?
问题描述
就像标题说:为什么我得到java.lang.reflect.InvocationTargetException在浏览器中,但不是在日食applet浏览器?当我使用HTML加载它运行我的小应用程序(是的,我知道小程序已经过时)在浏览器中,我得到的java.lang.reflect.InvocationTargetException错误。我读这当HTML试图加载的东西是不是一个applet发生,但是当我运行它在Eclipse一个applet它的工作原理(带来了日食Java小程序浏览器和完美的作品......这就是我的树桩) 。这里是堆栈跟踪:
了java.lang.RuntimeException:java.lang.reflect.InvocationTargetException
在com.sun.deploy.uitoolkit.impl.awt.AWTAppletAdapter.runOnEDTAndWait(来源不明)
在com.sun.deploy.uitoolkit.impl.awt.AWTAppletAdapter.instantiateApplet(来源不明)
在sun.plugin2.applet.Plugin2Manager.initAppletAdapter(来源不明)
在sun.plugin2.applet.Plugin2Manager $ AppletExecutionRunnable.run(来源不明)
在java.lang.Thread.run(Thread.java:745)
java.lang.reflect.InvocationTargetException:产生的原因
在com.sun.deploy.uitoolkit.impl.awt.OldPluginAWTUtil.invokeAndWait(来源不明)
... 5个
java.security.AccessControlException:引起访问被拒绝(java.io.FilePermission中的hq.gif读)
在java.security.AccessControlContext.checkPermission(AccessControlContext.java:372)
在java.security.AccessController.checkPermission(AccessController.java:559)
在java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
在sun.plugin2.applet.AWTAppletSecurityManager.checkPermission(来源不明)
在java.lang.SecurityManager.checkRead(SecurityManager.java:888)
在sun.awt.SunToolkit.getImageFromHash(SunToolkit.java:774)
在sun.awt.SunToolkit.getImage(SunToolkit.java:790)
在sun.lwawt.macosx.LWCToolkit.getImage(LWCToolkit.java:471)
在javax.swing.ImageIcon中的<&初始化GT;(ImageIcon.java:147)
在javax.swing.ImageIcon中的<&初始化GT;(ImageIcon.java:174)
在Application.Game<&初始化GT;(Game.java:97)
在sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
在sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
在java.lang.reflect.Constructor.newInstance(Constructor.java:526)
在java.lang.Class.newInstance(Class.java:374)
在com.sun.deploy.uitoolkit.impl.awt.AWTAppletAdapter $ 1.run(来源不明)
在java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:302)
在java.awt.EventQueue.dispatchEventImpl(EventQueue.java:733)
在java.awt.EventQueue.access $ 200(EventQueue.java:103)
在java.awt.EventQueue中的$ 3.run(EventQueue.java:694)
在java.awt.EventQueue中的$ 3.run(EventQueue.java:692)
在java.security.AccessController.doPrivileged(本机方法)
在java.security.ProtectionDomain $ 1.doIntersectionPrivilege(ProtectionDomain.java:76)
在java.security.ProtectionDomain $ 1.doIntersectionPrivilege(ProtectionDomain.java:87)
在java.awt.EventQueue中的$ 4.run(EventQueue.java:708)
在java.awt.EventQueue中的$ 4.run(EventQueue.java:706)
在java.security.AccessController.doPrivileged(本机方法)
在java.security.ProtectionDomain $ 1.doIntersectionPrivilege(ProtectionDomain.java:76)
在java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
在java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
在java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
在java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
在java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
在java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
在java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
我的文件结构是这样的:
的index.html
java.policy.applet
hq.gif
b.gif
k.gif
应用程序(这是包)/
Game.java
Game.class
等等
我java.policy.applet
{补助
权限java.security.AllPermission;
};
的InvocationTargetException是一个通用的。实际的例外是
致:java.security.AccessControlException:拒绝访问
(java.io.FilePermission中的hq.gif读)
块引用>我以为是什么,你需要管理员权限的同时,除了签名的jar运行小程序。
你能包括以下code,所描述的<一个href=\"http://stackoverflow.com/questions/16590269/accesscontrolexception-access-denied-filepermission\">here
在AccessController.doPrivileged(新的PrivilegedAction(){
公共对象的run(){
//这里执行安全敏感的操作
返回null;
}
});Just like the title says: Why do I get java.lang.reflect.InvocationTargetException in browser but not in eclipse applet viewer? When I run my applet (yes, i know applets are outdated) in the browser using html to load it, i get the java.lang.reflect.InvocationTargetException error. I read that this happens when the HTML is trying to load something that is not an applet, but it works when I run it as an applet in eclipse (brings up eclipse java applet viewer and works perfect...that is what stumps me). Here is the stack trace:
java.lang.RuntimeException: java.lang.reflect.InvocationTargetException at com.sun.deploy.uitoolkit.impl.awt.AWTAppletAdapter.runOnEDTAndWait(Unknown Source) at com.sun.deploy.uitoolkit.impl.awt.AWTAppletAdapter.instantiateApplet(Unknown Source) at sun.plugin2.applet.Plugin2Manager.initAppletAdapter(Unknown Source) at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source) at java.lang.Thread.run(Thread.java:745) Caused by: java.lang.reflect.InvocationTargetException at com.sun.deploy.uitoolkit.impl.awt.OldPluginAWTUtil.invokeAndWait(Unknown Source) ... 5 more Caused by: java.security.AccessControlException: access denied ("java.io.FilePermission" "hq.gif" "read") at java.security.AccessControlContext.checkPermission(AccessControlContext.java:372) at java.security.AccessController.checkPermission(AccessController.java:559) at java.lang.SecurityManager.checkPermission(SecurityManager.java:549) at sun.plugin2.applet.AWTAppletSecurityManager.checkPermission(Unknown Source) at java.lang.SecurityManager.checkRead(SecurityManager.java:888) at sun.awt.SunToolkit.getImageFromHash(SunToolkit.java:774) at sun.awt.SunToolkit.getImage(SunToolkit.java:790) at sun.lwawt.macosx.LWCToolkit.getImage(LWCToolkit.java:471) at javax.swing.ImageIcon.<init>(ImageIcon.java:147) at javax.swing.ImageIcon.<init>(ImageIcon.java:174) at Application.Game.<init>(Game.java:97) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:526) at java.lang.Class.newInstance(Class.java:374) at com.sun.deploy.uitoolkit.impl.awt.AWTAppletAdapter$1.run(Unknown Source) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:302) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:733) at java.awt.EventQueue.access$200(EventQueue.java:103) at java.awt.EventQueue$3.run(EventQueue.java:694) at java.awt.EventQueue$3.run(EventQueue.java:692) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87) at java.awt.EventQueue$4.run(EventQueue.java:708) at java.awt.EventQueue$4.run(EventQueue.java:706) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) at java.awt.EventQueue.dispatchEvent(EventQueue.java:705) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138) at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
My file structure is like this:
index.html java.policy.applet hq.gif b.gif k.gif Application (this is the package)/ Game.java Game.class ETC
My java.policy.applet
grant { permission java.security.AllPermission; };
解决方案InvocationtargetException is a generic one. The actual exception is
Caused by: java.security.AccessControlException: access denied ("java.io.FilePermission" "hq.gif" "read")
What I assume is, you would need admin priviledges while running the applet in addition to the signed jar.
Can you incorporate the following code, as described here
AccessController.doPrivileged(new PrivilegedAction() { public Object run() { // perform the security-sensitive operation here return null; } });
这篇关于为什么我得到java.lang.reflect.InvocationTargetException在浏览器中,但不是在日食applet浏览器?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!