2012-09-27 42 views
0

我写了我的第一个Java小程序。Java Applet无法从网络加载图像

它基本上从我的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();} 
} 

对于测试我试图将图像从我的本地Web服务器,但错误与每一个可能的链接,内部或外部出现。

预先感谢您。

+0

重复:http://stackoverflow.com/questions/4169717/why-does-my-applet-get-a-java-security-accesscontrolexception-access-denied-ja?rq = 1 –

回答

0

除非小程序签字后,将无法在其他不同的位置来访问图像,然后发端的服务器。在这里,你可以使用:

images[i] = getImage(getDocumentBase(), IMMAGINE + i); 
+0

我忘了提及它! 对于代码,我宁愿只编辑URL,因为在应用程序的其余部分,我使用BufferedImage。 –

0

好的,解决了!

的代码行更改为

URL url = new URL(this.getParameter(IMMAGINE+i)); 

URL url = new URL(getCodeBase(), this.getParameter(IMMAGINE+i));