Problème résolu, voir mon post du "29/05/2006, 03:00:17"
Bonsoir les gens,
J’essaie de me faire une petite application Java pour lancer des applications.
J’utilise Runtime.exec(String command) où command est la ligne de commande pour lancer l’application en question.
Lorsque la commande “calc.exe”, “notepad.exe”, “mspaint.exe”, il n’y pas de :??: problèmes, la calculatrice, le bloc-note ou Paint se lancent et sont fonctionnels (utilisables).
Cependant, le but de mon programme est de lancer un logiciel tel que Apache dont la ligne de commande (de lancement) est plus complexe que “notepad.exe”, j’utilise :
"C:\Program Files\Apache 2.0.55\Apache2\bin\Apache.exe" -w -f "C:\Program Files\Apache 2.0.55\Apache2\conf\httpd-php4.conf" -d "C:\Program Files\Apache 2.0.55\Apache2\."
Cette commande qui marche (lance Apache et Apache est utilisable) lorsqu’elle est tapée dans une console, refuse de marcher lorsque qu’elle est executée par mon programme Java : Il y a bien un Apache dans la liste des Processus Windows, mais impossible de contacter mon serveur web via un navigateur web.
Ce que j’ai remarqué c’est que lorsque je lance la commande pour Apache depuis une console, ce n’est pas 1 mais 2 processus Apache qui apparaissent dans la liste des processus, alors que lorsque lancée par mon programme Java, il n’y en a qu’un seul.
J’ai donc controlé, avec Process Explorer, le lancement des processus dans les 2 cas (console et programme Java) pour voir plus en details les différences.
Il s’avère que dans le cas qui marche (par console) il y a bien 2 processus “Apache.exe” mais l’un est le fils de l’autre.
Dans le cas non fonctionnel (programme Java), il n’y a bien qu’un seul processus, sans fils.
Alors est-ce que, quelque part, le processus Apache lancé par mon programme Java est empêché (par quoi ?) de lancer un second processus Apache ? Pourquoi ?
J’aimerais avoir vos avis sur le sujet s’il vous plait