PB dans l'exécution d'un jar via JWS

Résolu
kalamit Messages postés 279 Date d'inscription   Statut Contributeur Dernière intervention   -  
kalamit Messages postés 279 Date d'inscription   Statut Contributeur Dernière intervention   -
Hello world,

J'ai un petit soucis qui, je pense, sera résolu très vite grace à votre aide:

J'ai un jar executable qui se lance via java web start.
Dans ce jar, je ne parviens pas à executer ça :

Runtime monRuntime = Runtime.getRuntime();
String[] command = {"/sbin/shutdown", "-hP", "now"};
monRuntime.exec(command);

Je pense que le .exec pose problème dans un cadre JWS.

A noter que mon prog fonctionne très bien quand j'execute le jar sans JWS...

Quelqu'un aurait il une idée ?

Merci !

A voir également:

4 réponses

kalamit Messages postés 279 Date d'inscription   Statut Contributeur Dernière intervention   16
 
Un petit up ?
Siouplé !
0
kalamit Messages postés 279 Date d'inscription   Statut Contributeur Dernière intervention   16
 
Bon, j'me réponds à moi-même.

A priori, cela viendrait pour l'utilisation de la classe Runtime :
- du fait que le jar n'était pas signé
- de la version de la jre > 1.5. Pour des questions de securité, la signature ne suffit plus.

Quelle est la solution me direz-vous ?
Il faut faire une infâme bidouille dans le fichier de policy de java qui devrait se trouver dans le répertoire /jreX/lib/security afin d'autoriser l'utilisation de la classe Runtime (entre autre).

J'me rencarde sur ce qu'il faut mettre la dedans et je reviens.
0
kalamit Messages postés 279 Date d'inscription   Statut Contributeur Dernière intervention   16
 
OK, à priori, c'est vraiment laid.
Trouvez la ligne
permission java.lang.RuntimePermission "stopThread";
dans le fichier java.policy, le sauvegarder quelque part et et mettre une * à la place du stopThread.

Question securité, derrière ça c'est tout pourri. Donc gaffe...
0
kalamit Messages postés 279 Date d'inscription   Statut Contributeur Dernière intervention   16
 
Re,

J'me corrige tout seul. Ce que j'ai dit précedemment est faux.
Après test, il est impératif que:
- le jar soit signé (une auto signature suffit, voir http://inouire.net/blog/index.php?post/2010/03/26/Signer-simplement-une-archive-jar pour plus de précision)
- le .jnlp contienne cette ligne: <security> <all-permissions/> </security>

Et ca suffit ! Il n'est point besoin d'aller fouiller dans le fichier java.policy

J'ai mis en ligne mon exemple (attention l'application éteint le PC).

http://web-verifier.com/fcs/halt.xhtml
0