已经看了很多帖子,但这个问题始终没能解决……啥都不说了,直接上代码:
html:
<body>
<applet codebase="."
code="AutoLayoutDemo.class"
name="AutoLayoutDemo"
archive="twaver.jar,demo.jar"
width="320"
height="240">
</body>
说明:在eclipse工作区里直接运行applet,可以正常显示
程序调用了外部包:twaver.jar,demo.jar
调用了外部的图片(这个不说了,显示不了也对程序功能没多大影响)
调用了一个d:根目录的文件
结果无论怎么修改在ie(可以正常运行sun的appletdemo)中都不能正常运行,错误信息如下:can't load image '/resource/image/swing/close.png'
can't load image '/resource/image/swing/minimize.png'
can't load image '/resource/image/swing/shrink.png'
java.lang.RuntimeException: java.lang.ExceptionInInitializerError
at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ExceptionInInitializerError
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at twaver.TUIManager.class$(Unknown Source)
at twaver.TUIManager.<clinit>(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at twaver.TWaverUtil.class$(Unknown Source)
at twaver.TWaverUtil.setLocale(Unknown Source)
at twaver.TWaverUtil.<clinit>(Unknown Source)
at twaver.TDataBox.<init>(Unknown Source)
at twaver.TDataBox.<init>(Unknown Source)
at twaver.TDataBox.<init>(Unknown Source)
at AutoLayoutDemo.<init>(AutoLayoutDemo.java:52)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at sun.plugin2.applet.Plugin2Manager$12.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.lang.NullPointerException
at twaver.network.ui.ComponentAttachment.<clinit>(Unknown Source)
... 34 more
异常:java.lang.RuntimeException: java.lang.ExceptionInInitializerError
前三个can't load image文件在twaver.jar里,貌似包没被正常调用……
已经尝试了一下方案,均行不通:
直接用winrar解压twaver.jar
将此代码嵌入jsp中
更改jre权限加入permission java.security.AllPermission;(更改后页面一片空白)
求解答啊……
html:
<body>
<applet codebase="."
code="AutoLayoutDemo.class"
name="AutoLayoutDemo"
archive="twaver.jar,demo.jar"
width="320"
height="240">
</body>
说明:在eclipse工作区里直接运行applet,可以正常显示
程序调用了外部包:twaver.jar,demo.jar
调用了外部的图片(这个不说了,显示不了也对程序功能没多大影响)
调用了一个d:根目录的文件
结果无论怎么修改在ie(可以正常运行sun的appletdemo)中都不能正常运行,错误信息如下:can't load image '/resource/image/swing/close.png'
can't load image '/resource/image/swing/minimize.png'
can't load image '/resource/image/swing/shrink.png'
java.lang.RuntimeException: java.lang.ExceptionInInitializerError
at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ExceptionInInitializerError
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at twaver.TUIManager.class$(Unknown Source)
at twaver.TUIManager.<clinit>(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at twaver.TWaverUtil.class$(Unknown Source)
at twaver.TWaverUtil.setLocale(Unknown Source)
at twaver.TWaverUtil.<clinit>(Unknown Source)
at twaver.TDataBox.<init>(Unknown Source)
at twaver.TDataBox.<init>(Unknown Source)
at twaver.TDataBox.<init>(Unknown Source)
at AutoLayoutDemo.<init>(AutoLayoutDemo.java:52)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at sun.plugin2.applet.Plugin2Manager$12.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.lang.NullPointerException
at twaver.network.ui.ComponentAttachment.<clinit>(Unknown Source)
... 34 more
异常:java.lang.RuntimeException: java.lang.ExceptionInInitializerError
前三个can't load image文件在twaver.jar里,貌似包没被正常调用……
已经尝试了一下方案,均行不通:
直接用winrar解压twaver.jar
将此代码嵌入jsp中
更改jre权限加入permission java.security.AllPermission;(更改后页面一片空白)
求解答啊……
can't load image '/resource/image/swing/close.png'
can't load image '/resource/image/swing/minimize.png'
can't load image '/resource/image/swing/shrink.png'
你可以先查一下,Html的同目录下有没有resource目录,对应的相对路径找close.png能找到么,先看看这个吧
<html>
<body>
<applet codebase="."
basedir= "."
code="AutoLayoutDemo.class"
name="AutoLayoutDemo"
archive="twaver.jar,demo.jar"
width="320"
height="240">
</body>
</html>
而且要的包都与网页在同一目录下,但还是一样的错误…………
getClass().getResource(imageNum+".jpg")
http://happy.host898.net/java/album/index.html
ImageIcon icon=new ImageIcon("images/image.gif");这行代码在java application可以读取文件系统的文件,但在applet使用代码是不管用的,这是沙箱所不允许的,不管浏览器当前的目录是什么,都找不到所需的图像文件
替代解决方案是ImageIcon icon=new ImageIcon(getClass().getResource("images/image.gif");,但并非所有的浏览器都支持getResource楼主不给代码,只能给你说一下是这个原因
这样试试。。
1.所引入的以及自己打包的jar都要经过数字签名。(这一点至关重要)
2.为避免绝对路径的麻烦,用getClass().getResource("images/image.gif");打包导入图片资源不失为一个调用图片的好的方法。
再次感谢!