Access Denied beim Bild laden

Status
Nicht offen für weitere Antworten.

Scotty

Aktives Mitglied
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?
 
weil applets restriktiver sind. such mal hier im forum nach applet und datei oder so. geht aber mit reinen applets imho nicht.
 
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)
 
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"
 
Bilder können via Applet so geladen und gezeichnet werden:
Code:
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:
Code:
<applet code="Example.class" width=400 height=300>
  <param name=image value="images/anyImage.jpg">
</applet>
 
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.
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben