Bonsoir tout le monde,
dans mon projet actuel, je suis confronté à un petit problème. Je déploie mon appli via Java Web Start. Le soft est composé de plusieurs fichiers *.jar, répartis selon la structure suivante:
Les dépendances sont les suivantes: "MonAppli.jar" utilise "libs/UnJar.jar", et "libs/UnJar.jar" requiert "libs/UnAutreJar.jar" et de "libs/UnTroisieme.jar"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 +- /Monprojet/dist/ --MonAppli.jar +- libs/ --UnJar.jar --UnAutreJar.jar --UnTroisieme.jar
J'ai donc les manifest suivants:
Pour MonProjet.jar:
...et pour "UnJar.jar":
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3Manifest-Version: 1.0 Class-Path: ./libs/UnJar.jar Main-Class: mypack.MyApp
Tout semble très simple et naturel... et cela fonctionne en tant qu'application normale... mais lorsque je veux lancer l'appli depuis Java Web Start, je reçois l'exception suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2Manifest-Version: 1.0 Class-Path: ./UnAutreJar.jar ./UnTroisieme.jar
Comme on peut le remarquer, l'exception se produit lorsque je tente d'accéder à la propriété système "user.home" (via un appel de System.getProperty("user.home")). Ce code est placé dans une classe du jar "libs/UnJar.jar"
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 java.lang.ExceptionInInitializerError at pills.app.Application.<init>(Application.java:69) at shareddiary.JSharedDiary.<init>(JSharedDiary.java:68) at shareddiary.JSharedDiary.<clinit>(JSharedDiary.java:33) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at com.sun.javaws.Launcher.executeApplication(Unknown Source) at com.sun.javaws.Launcher.executeMainClass(Unknown Source) at com.sun.javaws.Launcher.doLaunchApp(Unknown Source) at com.sun.javaws.Launcher.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Caused by: java.security.AccessControlException: access denied (java.util.PropertyPermission user.home 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.checkPropertyAccess(Unknown Source) at java.lang.System.getProperty(Unknown Source) at pills.globals.GlobalToolkit.<clinit>(GlobalToolkit.java:162) ... 12 more
Pourtant, tous les jars sont signés avec le même certificat, et j'accorde tous les droits dans le fichier jnlp, avec "<security><all-permissions/></security>"...
PS: je tourne en Java 6, j'espère qu'il ne s'agit pas d'un bug de la version beta
Quelqu'un aurait-il une idée sur la cause du problème ainsi que la manière de corriger cela?
Merci d'avance!!
Partager