NSTask et Java

22:46 modifié dans Actualités #1
Je ne sais pas si je poste au meilleur endroit, je ne sais pas trop où classer mon problème.

Voila je voudrais que mon application puisse lancer un autre programme (en Java) puis continuer de fonctionner indépendamment de celui-ci. Je le fait déjà  avec des programmes en C ou C++ qui s'éxécutent en ligne de commande et avec un NSTask ça marche sans aucun problème.

Seulement voila avec ce programme en Java et en mode graphique ça ne marche pas. Voila mon code :
<br />[NSTask launchedTaskWithLaunchPath: @&quot;/usr/bin/java&quot;<br />                                                                                                  arguments: <br />              [NSArray arrayWithObjects: <br />                       @&quot;-Xms64m&quot;,<br />                     @&quot;-Xmx96m&quot;,<br />                     [NSString stringWithFormat: <br />                              @&quot;-jar %@/weymagic.jar&quot;, [[NSString stringWithString: <br />                                  @&quot;~/Weymagic&quot;] <br />                                 stringByExpandingTildeInPath]],<br />                   [NSString stringWithFormat: <br />                              @&quot;--commandant %@&quot;,@&quot;292&quot;],<br />                   [NSString stringWithFormat: <br />                              @&quot;--tour %i&quot;,[_rapport getTour]],<br />                       nil]];<br />


Et comme résultat j'obtiens dans les logs :
Unrecognized option: -jar /Users/benoit/Weymagic/weymagic.jar
Could not create the Java virtual machine.


La meme ligne de commanden tapée dans un terminal marche sans problème, j'en déduis donc qu'il me manque des variables d'environnement essentielles au fonctionnement de /usr/bin/java. Ma question est quelles sont-elles ?

Réponses

  • mpergandmpergand Membre
    22:46 modifié #2
  • 22:46 modifié #3


    Bon ton lien bien que n'ayant aucun rapport avec Cocoa m'a été fort utile, en tout cas c'est après l'avoir lu que j'ai eu l'idée de la solution.

    Donc en fait il faut faire de chaque chaà®ne de caractère (séparées par un espace) un des éléments du tableau arguments à  passer en paramètre à  la méthode.

    Ce code là  fonctionne :
    <br />[NSTask launchedTaskWithLaunchPath: @&quot;/usr/bin/java&quot;<br />                                                                                                   arguments: <br />              [NSArray arrayWithObjects: <br />                       @&quot;-Xms64m&quot;,<br />                     @&quot;-Xmx96m&quot;,<br />                     @&quot;-jar&quot;,<br />                        [NSString stringWithFormat: <br />                              @&quot;%@/weymagic.jar&quot;, [[NSString stringWithString: <br />                                       @&quot;~/Library/Application Support/WRP/Weymagic&quot;] <br />                                 stringByExpandingTildeInPath]],<br />                   nil]];<br />
    
  • mpergandmpergand Membre
    22:46 modifié #4
    Ben oui, ton problème n'avait rien à  voir avec Cocoa et était bien un simple problème de syntaxe, comme je le pressentais, mais à  la vue du code :D, difficile de savoir où ;D, j'ai pas vraiment cherché faut dire aussi  ;)
Connectez-vous ou Inscrivez-vous pour répondre.