如何解决Applet对本地文件的AccessControlException
//程序如下
import java.awt.*;
import java.applet.*;
/**
*
*/
public class AWTPaintOverrider extends Applet
{
public void init()
{
ImageCanvas imageCanvas = new ImageCanvas("C:\\1.gif");
add(imageCanvas);
}
}
class ImageCanvas extends Canvas
{
Image image;
public ImageCanvas(String imageName)
{
image = Toolkit.getDefaultToolkit().getImage(imageName);
MediaTracker mt = new MediaTracker(this);
try
{
mt.addImage(image, 0);
mt.waitForID(0);
}
catch (InterruptedException ex)
{
ex.printStackTrace();
}
}
public void paint(Graphics g)
{
g.drawImage(image, 0, 0, null);
}
public Dimension getPreferredSize()
{
return new Dimension(image.getWidth(null), image.getHeight(null));
}
}
//异常如下:
java.security.AccessControlException: access denied (java.io.FilePermission C:\1.gif read)
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:270)
at java.security.AccessController.checkPermission(AccessController.java:401)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:542)
at java.lang.SecurityManager.checkRead(SecurityManager.java:887)
at sun.awt.SunToolkit.getImageFromHash(SunToolkit.java:486)
at sun.awt.SunToolkit.getImage(SunToolkit.java:500)
at ImageCanvas.<init>(AWTPaintOverrider.java:30)
at AWTPaintOverrider.init(AWTPaintOverrider.java:19)
at sun.applet.AppletPanel.run(AppletPanel.java:347)
at java.lang.Thread.run(Thread.java:536)