我已经写了第一个java小程序。
它基本上从我的Django网络服务器加载一些图像,然后用户可以修改它们。
我是在Eclipse中开发的,我完全没有问题。当我尝试使用测试页面时,在java控制台上出现了这个错误:
java.security.AccessControlException: access denied (java.net.SocketPermission www.hyros.net resolve)
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:374)
at java.security.AccessController.checkPermission(AccessController.java:546)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
at java.lang.SecurityManager.checkConnect(SecurityManager.java:1031)
at sun.plugin2.applet.Applet2SecurityManager.checkConnect(Applet2SecurityManager.java:500)
at sun.plugin2.applet.Plugin2Manager$AppletContextImpl.getImage(Plugin2Manager.java:2718)
at java.applet.Applet.getImage(Applet.java:242)
at MapGenerator.getResourceImage(MapGenerator.java:50)
at MapGenerator.init(MapGenerator.java:35)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Plugin2Manager.java:1637)
at java.lang.Thread.run(Thread.java:662)
Eccezione: java.security.AccessControlException: access denied (java.net.SocketPermission www.hyros.net resolve)
有罪的代码:
for(int i=0; i< numero_immagini; i++) {
try {
URL url = new URL(this.getParameter(IMMAGINE+i));
images[i] = ImageIO.read(url);
floors[i] = Integer.parseInt(this.getParameter(PIANO_IMMAGINE+i));
} catch (IOException ioe) {ioe.printStackTrace();}
}
对于测试,我尝试了来自我本地网络服务器的图像,但是每个可能的内部或外部链接都会出现错误。
提前谢谢。
答案 0 :(得分:0)
好的,解决了!
要更改的代码行是
URL url = new URL(this.getParameter(IMMAGINE+i));
到
URL url = new URL(getCodeBase(), this.getParameter(IMMAGINE+i));
答案 1 :(得分:0)
除非小程序已签名,否则它将无法访问原始服务器以外的其他位置的图像。在这里你可以使用:
images[i] = getImage(getDocumentBase(), IMMAGINE + i);