[Java] access denied - Java.io.FilePermission

Pagina: 1
Acties:

  • Thunderhawk
  • Registratie: Mei 2002
  • Laatst online: 24-04 15:47
Hallo allemaal,

Ik zit met een probleem waar ik zelf niet meer uitkom. Ik heb een applet gemaakt, en die moet gebruik maken van de database. Deze wordt dus eerst aangemaakt.

Echter bij het aanmaken gaat het mis bij het uitlezen van de .txt files. Ik krijg dan voor alle files de error:

DB try to read text input file: access denied (java.io.FilePermission D:\school\JAVA\Componist\src\componist\Componist.txt read) file: 0 teller: 1
D:\school\JAVA\Componist\src\componist\Muziek.txt
DB try to read text input file: access denied (java.io.FilePermission D:\school\JAVA\Componist\src\componist\Muziek.txt read) file: 1 teller: 1
D:\school\JAVA\Componist\src\componist\Musici.txt
DB try to read text input file: access denied (java.io.FilePermission D:\school\JAVA\Componist\src\componist\Musici.txt read) file: 2 teller: 1
D:\school\JAVA\Componist\src\componist\Uitvoering.txt
DB try to read text input file: access denied (java.io.FilePermission D:\school\JAVA\Componist\src\componist\Uitvoering.txt read) file: 3 teller: 1
D:\school\JAVA\Componist\src\componist\Muzuit.txt
DB try to read text input file: access denied (java.io.FilePermission D:\school\JAVA\Componist\src\componist\Muzuit.txt read) file: 4 teller: 1
D:\school\JAVA\Componist\src\componist\Leraarleerling.txt
DB try to read text input file: access denied (java.io.FilePermission D:\school\JAVA\Componist\src\componist\Leraarleerling.txt read) file: 5 teller: 1

Echter het vreemde is, dat als ik in de ComponistDatabase klasse een main aanmaak, waarin ik de regel

ComponistDatabase ComponistDB = new ComponistDatabase("D:\\", "componist.ser")

het WEL prima gaat. Help !

http://members.chello.nl/~j.vanschepen/Componist.rar

  • Marcj
  • Registratie: November 2000
  • Laatst online: 08-05 18:11
ik heb voor je even hier op GoT gezocht naar "java FilePermission applet" en dit was één van die resultaten.

Het probleem is dus dat een applet geen rechten heeft om bestanden te schrijven. Hiervoor moet je de gebruiker toestemming vragen.

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 08:08

Janoz

Moderator Devschuur®

!litemod

Lijkt me niet geheel onlogisch dat het voor een applet (die op een internet pagina staat) niet toegestaan is om de harde schijf van de gebruiker te lezen en schrijven.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • gsteen
  • Registratie: November 2004
  • Laatst online: 13-01-2020
Net als Marcj heb ik gezocht, alleen op google.

De eerste hit zag er veelbelovend uit. Net als deze. Alleen zoals Marcj ook al zei. De gebruiker krijgt een vraag te zien of hij dit accepteerd.

[ Voor 15% gewijzigd door gsteen op 07-04-2005 11:39 ]

"In theory, there is no difference between theory and practice. But, in practice, there is."


  • Thunderhawk
  • Registratie: Mei 2002
  • Laatst online: 24-04 15:47
Nee okee dat snap ik.

Maar zolang je nog in de bouw-fase zit, dan zou je toch eigenlijk onbeperkt moete kunnen werken?

  • FendtVario
  • Registratie: Januari 2002
  • Laatst online: 12-05-2025

FendtVario

The leader drives Vario!

Dat zou betekenen dat iedereen die de SDK installeert (omdat ie er bijv. geen verstand van heeft) zijn pc open zet voor kwaadwillenden. Ik denk dat Sun er terecht van uit gaat dat je ook als ontwikkelaar eerst de software moet configureren dat je applets toegang geeft tot de pc.

www.fendt.com | Nikon D7100 | PS5


  • Thunderhawk
  • Registratie: Mei 2002
  • Laatst online: 24-04 15:47
Ok goed, ik ben nu dus bezig met het maken van zo'n policy. Maar nu krijg ik een error wanneer ik javac aanroep.

Ik doe dus:

javac -cp . -sourcepath . CGUI.java

Dan krijg ik de volgende error:

code:
1
2
3
4
5
6
7
8
9
10
11
12
CGUI.java:17: cannot find symbol
symbol  : class ComponistDatabase
location: class componist.CGUI
  private ComponistDatabase componistDB = null;
          ^
CGUI.java:22: cannot find symbol
symbol  : class ComponistDatabase
location: class componist.CGUI
    componistDB = new ComponistDatabase("D:\\school\\JAVA\\Componist\\src\\compo
nist\\", "componistdb.ser");
                      ^
2 errors


Terwijl als ik in mijn compiler compileer, deze melding niet krijg.

  • gsteen
  • Registratie: November 2004
  • Laatst online: 13-01-2020
Je kan je gewoon je applet binnen je compiler compileren. Ik neem een beetje aan dat je vervolgens je applet in een jar hebt verpakt. (kan helaas je Componist.rar niet ophalen, maar dat probleem ligt bij mij)

Deze moet je signen.

Volg de aanwijzigingen op de site die ik noemde met betrekking tot de keytool. Dan heb je een ceritificaat om je jar mee te signen.

Hierna kan je met de tool jarsigner je jar signen. (op de site staat volgende syntax: jarsigner yourapplet.jar yourkey).

Hierna zou je je applet gewoon moeten kunnen gebruiken vanuit je browser (uiteraard na accepteren van de vraag die je krijgt).

"In theory, there is no difference between theory and practice. But, in practice, there is."

Pagina: 1