# Access Denied beim Bild laden



## Scotty (11. Mai 2005)

Die VM Konsole bringt folgenden Fehler:

java.security.AccessControlException: access denied (java.io.FilePermission cube_logo_small.jpg read)
	at java.security.AccessControlContext.checkPermission(Unknown Source)
	at java.security.AccessController.checkPermission(Unknown Source)
	at java.lang.SecurityManager.checkPermission(Unknown Source)
	at java.lang.SecurityManager.checkRead(Unknown Source)
	at sun.awt.SunToolkit.createImage(Unknown Source)
	at CubeApplet.<init>(CubeApplet.java:6)
	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.applet.AppletPanel.createApplet(Unknown Source)
	at sun.plugin.AppletViewer.createApplet(Unknown Source)
	at sun.applet.AppletPanel.runLoader(Unknown Source)
	at sun.applet.AppletPanel.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

Ohne Applet gibts keine Probleme, wieso kommt da ein Fehler und wie bekomm ich den weg?


----------



## DP (11. Mai 2005)

weil applets restriktiver sind. such mal hier im forum nach applet und datei oder so. geht aber mit reinen applets imho nicht.


----------



## Scotty (11. Mai 2005)

also wenn ich das applet und das bild hochlade, müsste es funktionieren?


----------



## Scotty (11. Mai 2005)

ich hab das bild erstmal entfernt. aber jetzt erscheint ein neuer fehler. komischerweise befinden sich in den besagten zeilen aussschließlich klammern.

java.lang.NullPointerException
	at Texture.<init>(Texture.java:46)
	at Cube.<init>(Cube.java:28)
	at CubeApplet.create(CubeApplet.java:16)
	at CubeApplet.<init>(CubeApplet.java:35)
	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.applet.AppletPanel.createApplet(Unknown Source)
	at sun.plugin.AppletViewer.createApplet(Unknown Source)
	at sun.applet.AppletPanel.runLoader(Unknown Source)
	at sun.applet.AppletPanel.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)


----------



## Scotty (12. Mai 2005)

dieser sandkasten, wo befindet der sich denn nun genau? wie kann ich darauf zugreifen?


----------



## stev.glasow (12. Mai 2005)

Die Sandbox ist nichts worauf man zugreifen kann, es ist ehr ein Rechtesystem in dem der Javacode gewissen Einschränkung unterliegt.

Aber was willst denn machen?
Bilder die sich z.B. im mit in dem jar Archiv befinden kann man auch in einem Applet laden und anzeigen, nur geht das dann nicht über den FileInputStream für den braucht man die "FilePermission"


----------



## L-ectron-X (12. Mai 2005)

Bilder können via Applet so geladen und gezeichnet werden:

```
import java.applet.*;
import java.awt.*;

public class Example extends Applet {
   private Image img;

   public void init() {
      img = getImage(getDocumentBase(), getParameter("image"));
   }
   
   public void paint(Graphics g) {
      g.drawImage(img, 0, 0, this);
   }
}
```

Ein entsprechender HTML-Code dazu:

```
<applet code="Example.class" width=400 height=300>
  <param name=image value="images/anyImage.jpg">
</applet>
```


----------



## Scotty (12. Mai 2005)

danke, so funktionierts. das bild muss in der init geladen werden, sonst wirft die vm eine nullpointer exception. dachte schon, ich muss erst noch rechte vergeben; mit dem policytool komm ich überhaupt nicht klar.


----------

