2012-12-27 6 views
0

Alors, quand je tente de charger mon applet de mon site je reçoisProblèmes avec Applet dans site Web (AccessControlException)

AccessControlException 
access denied ("java.io.FilePermission" "cursor.gif" "read") 

Cela correspond au code dans mon applet.

//Modify the cursor when inside the Applet 
Toolkit toolkit = Toolkit.getDefaultToolkit(); 
Image cursorIcon = toolkit.getImage("cursor.gif"); 
Point center = new Point(16, 16); 
Cursor cursor = toolkit.createCustomCursor(cursorIcon, center, "Cursor"); 
setCursor(cursor); 

Je AI googlé et essayé des choses telles que

  • Signez la .jar
  • Créer une chose politique, mais je ne comprenais pas complètement comment faire et quoi faire avec (Quelqu'un peut-il m'expliquer comment faire la politique en détail?)

Mon applet fonctionne parfaitement bien quand je cours Dans mon éclipse En outre, si je commente le code ci-dessus, mon applet fonctionne, donc juste cette partie me donne une erreur.

+0

' « cursor.gif »' Cela semble être une ressource d'application - que vous avez fournie avec l'applet, par opposition à chargé de ..some place sur le système de fichiers du utilisateur final. S'il est fourni par "le site Web", l'applet doit accéder à l'image via l'URL. Cette URL est généralement formée par rapport à la base de code ou à la base de document, ou via 'getResource()' si l'image du curseur se trouve dans un fichier jar mentionné dans l'attribut archive de l'élément applet. –

+0

* "Mon applet fonctionne parfaitement bien quand je le lance dans mon (insert IDE ici)" * (soupir) J'aimerais avoir un dollar pour chaque fois que j'ai entendu ça. ;) –

+0

Plutôt que d'éditer votre question initiale, prenez l'information que vous avez apprise et [répondez à votre propre question] (http://meta.stackexchange.com/questions/17463/can-i-answer-my-own-questions-even -ceux-où-je-savais-la-réponse-avant-de-demander). –

Répondre

0

Vous avez pour envelopper votre code à l'intérieur du code privilégié comme:

final String location = locationVal; 

File f = (File) AccessController.doPrivileged(new PrivilegedAction() 
{ 
    public Object run() 
    { 
     System.out.println("Getting File : " + location); 
     File outputFile1 = new File(location); 
     return outputFile1; 
    } 
}); 

Ce code est copié à partir de: where policy file location for my applet that needs clients permission to access resource?

aussi des liens utiles:

http://docs.oracle.com/javase/6/docs/technotes/guides/security/PolicyFiles.html sur la mise en œuvre de la politique de java.

http://docs.oracle.com/javase/1.3/docs/tooldocs/win32/policytool.html#Usage en utilisant l'éditeur de fichier de stratégie GUI

Questions connexes