Bonjour à tous
Je développe actuellement une application (Netbeans 8.0 et Ubuntu) devant impérativement appeler durant son exécution un autre programme java. Pour ce faire, j'utilise habituellement, dans le shell la ligne de commande suivante :
java -Xmx1G -classpath /home/user/software/a.jar:/home/user/software/b.jar:/home/user/software/c.jar:/home/user/software/d.jar:. /home/user/software/Script 0 1 0 1 /home/user/LSEQU/ 1000 32 1000 32 10 28 1000 1191 1 1 0 0 0 0 S 25 90 0 0 0 0 T 0 100 1 0.0 1000 /home/user/tmp/ Model 0 B 0 0 CLASSIC 0 1 LIBSVM /home/user/software/libsvm/ 0 L 1 1 S 0
où je suis obligée d'allouer explicitement de la mémoire à la machine virtuelle java, où je dois citer explicitement l'ensemble des .jar dont le programme appelé a besoin pour son exécution, et, où le script de lancement du programme Script.java, requiert énormément de paramètres (0 1 0 1 /home/user/LSEQU/ 1000 32 1000 32 10 28 1000 1191 1 1 0 0 0 0 S 25 90 0 0 0 0 T 0 100 1 0.0 1000 /home/user/tmp/ Model 0 B 0 0 CLASSIC 0 1 LIBSVM /home/user/software/libsvm/ 0 L 1 1 S 0
), pour que le programme "software" puisse s'exécuter correctement. J'insiste sur le fait que cette ligne de commande fonctionne parfaitement dans le shell.
Or, mon problème est le suivant : Lorsque j'utilise Process.exec(), je n'arrive pas à faire en sorte que cela fonctionne. En effet, il semblerait que toutes les combinaisons de tableaux de String essayées jusque maintenant n'aient pas convenu...
Je suis consciente que je dois absolument passer par des tableaux de String, mais mon problème est que je ne sais absolument pas comment les "organiser" pour que ça fonctionne... Ça fait déjà pas mal de temps que je suis sur ce problème, est-ce que quelqu'un parmi vous aurait une idée à me proposer ?
Je vous remercie d'avance pour votre aide,
Nath
ps : je précise que naturellement, même si ce n'est pas mentionné parce-que le problème ne se situe pas là, que les différents threads/flux sont (normalement) correctement gérés... Mon seul et unique problème ici est bien de faire passer la commande java + options de la commande java + arguments de la commande java + programme à exécuter + arguments du programme à exécuter.
Partager