LWJGL Applet - Lecture fichier refusé
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 :
Code:
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) |
Le code qui génère ce plantage est le suivant :
Code:
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 !");
} |
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:
1 2 3
| keytool -genkey -keyalg rsa -alias key
keytool -export -alias key -file cert.crt
jarsigner MyApps.jar key |
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 ... 8O
Bonne soirée à tous !