# Java - AccessDeniedException bei textdatei einlesen



## DarkMo (12. April 2010)

also vorweg: ich nutze eclipse als ide (nur falls das wichtig ist)

ich bastel gerade an nem kleinen projekt (applet) wo ich unter anderem textfiles und soundfiles einlese. wenn ich das ganze über eclipse starte, funzt es wunderbar, aber wenn ichs per html seite mit dem eingebetteten applet als file oder über meinen webserver aufrufe, kommt immer nen fehler. beim klick auf details erscheint dann folgendes:


> java.security.*AccessControlException: access denied *(java.io.FilePermission weapons.txt read)
> at java.security.AccessControlContext.checkPermission(Unknown Source)
> at java.security.AccessController.checkPermission(Unknown Source)
> at java.lang.SecurityManager.checkPermission(Unknown Source)
> ...


code sieht da wie folgt aus:

```
/*in = new BufferedReader(
                    new InputStreamReader(
                    new FileInputStream( "weapons.ini" ) ) );*/
            in = new BufferedReader(new FileReader("weapons.txt" ));
```
wie ihr seht, is die alte version noch auskommentiert und ich hab auch mal ne andere dateiendung probiert. bringt au nix ^^ ich hatte den selben kram auch schon bei soundfiles die ich eingelesen hab, konnts dort aber durch nen anderen aufruf beheben. daher hab ich gehofft, das es hierfür auch ne andere methode gibt, die ich aber ned finden kann (find immer nur die beiden versionen da).

hier nochmal das mit den sounds:

```
this.sound_sdmg = getAudioClip( getCodeBase(), "sounds/damage_shield.wav");
/*        File f = new File( "sounds/damage_shield.wav" ); 
        try { this.sound_sdmg = Applet.newAudioClip( f.toURL() );
        } catch (MalformedURLException exc) { exc.printStackTrace(); } */
```
wieder die alte (nicht funktionierende) version auskommentiert.

also denn, hoffentlich kann mir wer helfen ^^


----------



## bingo88 (13. April 2010)

Ich hab hier ne Seite gefunden, wo gesagt wird, man müsse sich zuerst die jar signieren: How to open/read/write a local file from a java applet

Applets ist es per Definition erstmal nich gestattet, irgendetwas an der Maschine des Users zu machen (-> Sandbox), daher muss man wohl mit dem Signieren was rumtricksen...


----------



## DarkMo (14. April 2010)

jup, soweit kam ich gestern auch noch ^^
Textdateien mit Applet auslesen - Java @ tutorials.de: Forum & Hilfe <- da steht das selbe. da ich mit jar nix anfangen konnte und schon garkeine erstellen, hab ich noch das hier gegoogelt gehabt: Jar-Archiv erstellen - java-forum.org

ich hatte gestern nacht keinen erfolg mehr und heute mich mit bissl server und client und socket kram beschäftigt. soll mal irgendwann wenns irgendwie klappt was multiplayer mäßiges werden, un wenn applets da schon so narfen, dann würd ich wohl eher gleich auf was nich browser basiertes umsteigen, sondern was knuffiges als exe bauen - wenn das irgendwie mit java geht (muss ich au noch rausfinden ^^) - kann ja keinem zumuten, jedesmal über die konsole die class datei zu starten *g* hab aber heute mitbekommen, das mein vorhaben wohl noch ein weiter weg is. das meine "kleinen" projekte immer so ausarten müssen :/


----------



## bingo88 (14. April 2010)

Mit Java kann man leider keine exes direkt erzeugen. Unter Windoows und OS X kann man zwar mit nem Doppelklick auf die jar-Datei das Programm starten, aber ich habe auch schon Loader (z. B. in C#) gesehen, die quasi die Aktionen auf der Kommandozeile in ner exe kapseln. Ob das mit dem Doppelklick unter Linux auch funtkioniert, weiß ich atm leider nicht...


----------



## Bauer87 (14. April 2010)

Zu Linux: Direkt auf die jar-Datei klicken sollte funktionieren, wenn Java installiert ist und man Java-Applets mit Java als Voreinstellung öffnen lässt. Wenn man Java manuell installiert hat (also am Paketmanager vorbei einfach auf die Festplatte gelegt), funktioniert das erst, wenn man das dann auch selber eingestellt hat.

Ansonsten kann auch einfach nen Starter (das, was Windows fälschlicherweise Verknüpfung nennt) anlegen, der das Programm mit Java öffnet. Ist doch kein Act. Ein Mono-Programm braucht man dafür ganz sicher nicht schreiben — selbst unter Windows würde ne einzeilige Batchdatei reichen.


----------



## boerigard (14. April 2010)

DarkMo schrieb:


> da ich mit jar nix anfangen konnte und schon garkeine erstellen,


Geht das nicht mit Eclipse als Export?
Das ging doch damals schon in Forte 1.0 (zumindest war unser Projekt in einer Jar). Mit Eclipse hab ich kaum Erfahrung. IIRC müsste das aber auch gehen.
In Windows lässt sich die Jar dann einfach durch Klick (bzw. Doppelklick) starten.


----------



## DarkMo (14. April 2010)

lol ok. wieder was gelernt. konnts mit export grad als jar speichern ^^ beim ausführen steht allerdings da "failed to load main-class manifest attribute from <path to file>". verdämmt


----------



## ALDI Nord (15. April 2010)

Du Musst aufpassen, dass du auch alle classen und Dateien mit exportierst. 
Ich glaube bei dir fehlte der class-path.
Letztes Semester haben viele unvollständige oder sogar leere Jar files abgegeben.


----------



## DarkMo (15. April 2010)

ok, ich hab grad gesehn, es gibt jar und runnable jar und ich hatte das erste genommen. nun hab ich das runnable genommen und er will ne launch konfiguration. von meinen 8 projekten oder so werden aber nur 3 angezeigt - un natürlich fehlt das, was ich haben will. kann man applets nicht als runnable jar extrahieren?


----------

