Applet-Security Problem (readFile)

NetzUnity und Informatik-forum wurden zusammengelegt. Eine entsprechende Ankündigung wird demnächst noch folgen. Für 2025 ist hier einiges geplant! Bei Fragen bitte per DM an Maximilian Rupp wenden.
  • Hoi! Also, ich bin grad an meinem ersten Applet und hab soeben Bekanntschaft mit den Security-Restrictions geschlossen. Weiß aber nicht wie ich die umgehen kann, also bitte um Hilfe.

    Ich schreibe das Applet in NetBeans und sehe es somit im Appletviewer am localhost.
    Die Zeile

    Code
    BufferedImage image = ImageIO.read(new java.io.File(filename));


    funktioniert in Standalone-Apps ja ganz normal, das Applet schmeisst mir aber eine

    Zitat

    java.security.AccessControlException: access denied (java.io.FilePermission C:\img\r_1.gif read)


    Exception.

    Wie kann ich denn die Bilddateien (sie liegen in einem best. Verzeichnis) einlesen?? Es sei noch zu sagen dass diese Lesefunktion in einer Hilfsklasse ausgeführt wird, nicht direkt in der Subklasse des Applets ... also kann ich mit applet-spezifischen Befehlen wie getImage() nichts anfangen.

    So bitte zu Hülf :distur:

    Hätten uns Spiele wie Pac-Man in unserer Jugend beeinflusst, würden wir heute durch dunkle Räume irren, elektronische Musik hören und Pillen fressen.

  • also ich glaube nicht das du ein bild in ein applet einladen kannst, ohne

    Code
    javax.swing.JApplet.getImage(URL url);


    oder das Äquivalent aus dem AWT zu benutzen.

    Code
    BufferedImage image = ImageIO.read(new java.io.File(filename));

    kann auf jedenfall nicht funktionieren, weil das würde die bilder ja vom client laden und ich nehme an, selbst wenn das erlaubt wäre, möchtest du sie eigentlich vom server nachladen.

    Du hast meiner Meinung nach 2 Möglichkeiten:

    I.)

    statt einem Applet Java Webstart verwenden: Das ist wahrscheinlich die bessere Lösung: Du behälst alle Vorteile eines Applets, aber ohne dessen Einschränkungen und Eigenarten.

    II.)

    eine instanz vom Applet an an die subklasse weitergeben.
    damit deine subklasse nicht vom applet 'abhängig' wird, kannst du ja ein interface benutzen...

    ...das dein applet implementiert...

    ...und deine subklasse verwendet...

  • Zitat von Ringding

    Und das soll funktionieren? Wenn man die Restriktion so einfach umgehen könnte, wäre sie doch total sinnlos, oder?


    nein, denn

    Zitat von gkittel

    Die Restriktion wird doch nicht umgangen, oder? Es wird doch nach wie vor JApplet.getImage() verwendet. Oder habe ich etwas übersehen?

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!