Bonsoir à tous !
Après de nombreuses recherches sur un problème pourtant assez connu, je me tourne vers vous car jusqu'à présent je n'ai rien trouvé de concluant ...
Je vous expose donc mon problème :
Je suis en plein dans le développement d'un jeu sur Applet, et pour cela j'utilise les APIs LWJGL et Slick2D (j'utilise ce dernier pour ouvrir les images ainsi que les sons). Cependant, lors du chargement, mon programme plante avec le message d'erreur suivant :
Le code qui génère ce plantage est le suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 This occurred while 'Initializing real applet' access denied ("java.io.FilePermission" ".\snd\Tir1-16b.wav" "read") java.security.AccessControlException: access denied ("java.io.FilePermission" ".\snd\Tir1-16b.wav" "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 java.io.File.exists(Unknown Source) at org.newdawn.slick.util.FileSystemLocation.getResourceAsStream(FileSystemLocation.java:52) at org.newdawn.slick.util.ResourceLoader.getResourceAsStream(ResourceLoader.java:61) at myapps.Files.load(Files.java:24) at myapps.MyApps.init(MyApps.java:32) at org.lwjgl.util.applet.AppletLoader.switchApplet(AppletLoader.java:1330) at org.lwjgl.util.applet.AppletLoader$2.run(AppletLoader.java:909) at java.awt.event.InvocationEvent.dispatch(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$200(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source)
La solution la plus récurrente que j'ai trouvé jusqu'à présent est de signer l'applet. Mais même le fait de l'avoir signé n'a pas changé grand chose ... J'ai utilisé ces commandes pour créer un certificat nécessaire à la signature d'une applet :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 public class Files { public static Audio sound; public static void load() { try { sound = AudioLoader.getAudio("WAV", ResourceLoader.getResourceAsStream("/snd/Tir1-16b.wav")); } catch (IOException ex) { Logger.getLogger(Files.class.getName()).log(Level.SEVERE, null, ex); } System.out.println("loaded with success !"); }
Voilà... Je vous remercie par avance pour les réponses et j'espère que vous m'éclairerez davantage sur ce problème que je trouve bien mystérieux ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3keytool -genkey -keyalg rsa -alias key keytool -export -alias key -file cert.crt jarsigner MyApps.jar key
Bonne soirée à tous !
Partager