Execution d'un programme C dans du java - Java - Programmation
Marsh Posté le 05-06-2005 à 01:39:54
Pourquoi tu parles de C et C++, c'est quoi le rapport avec la choucroute ?
Marsh Posté le 05-06-2005 à 01:43:33
parce que g une premiere appli en java avec 2 boutons :
un qui s'appelle C++ qd on clique dessus il lance le premier code
un deuxieme qui s'appelle C et qui (est censé)lancer le deuxieme code
=>le programme en C ne se lancant pas
Marsh Posté le 05-06-2005 à 01:46:09
quand tu le lances seul en console il marche ton programme C, genre il fait pas un coredump?
Marsh Posté le 05-06-2005 à 01:48:21
Ok ça j'avais compris. Mais ça aurait été programmé en brainfuck que je vois pas ce que ça changerait.
Sinon je vois mal comment on peut t'aider avec si peu d'informations. Il faudrait nous dire ce qu'est censé faire "TCP_c.exe".
Marsh Posté le 05-06-2005 à 01:50:43
quand je lance en console pas de probleme
TCP_c.exe : demande a l'utilisateur une adresse ip un port et un message le tout est envoyer a un serveur d'echo qui repond la chaine que l'utilisateur a tapper
mais il se passe rien du tout je vois meme pas une fenetre dos qui s'ouvre
Marsh Posté le 05-06-2005 à 02:06:02
cachalot a écrit : quand je lance en console pas de probleme |
Pourquoi est-ce qu'une fenêtre devrait s'ouvrir ? T'es sous 98 pour avoir une fenêtre DOS qui s'ouvre (pas de DOS sous 2K/XP) ?
Sinon si t'as des données à faire passer à ton programme, je ne suis pas certain que tu t'y prennes de la meilleure façon. Le mieux serait de pouvoir les passer en paramètre. Ce qui me paraît évident c'est que ton programme TCP_c.exe lit l'entrée standard et qu'il n'y a justement rien dans l'entrée standard, donc il ne fait rien.
Marsh Posté le 05-06-2005 à 02:11:56
en fait quand il se lance il doit demander l'adresse du serveur directe comme quand je le lance en ligne de commande donc ouvrir une fenetre dos no?
Marsh Posté le 05-06-2005 à 02:30:51
cachalot a écrit : en fait quand il se lance il doit demander l'adresse du serveur directe comme quand je le lance en ligne de commande donc ouvrir une fenetre dos no? |
Quand tu lances ton programme en ligne de commande, l'invité de commande se charge de passer ce que tu tapes dans l'entrée standard du programme. Si tu lances ton programme ailleur que dans un invité de commande, il lira toujours sur l'entrée standard, mais il faut savoir comment écrire dans ladite entrée standard. Une solution pourrait être de lancer l'invité de commande Windows ("command" ou "cmd" je crois) avec comme paramètre ton programme (il faut peut-être une option entre les deux, je te laisse chercher je suis pas sous Windows...) ce qui aurait pour effet de lancer ton programme dans une console. Tu dois même pouvoir ajouter une option pour que la console ne se ferme pas quand ton programme se termine.
Marsh Posté le 05-06-2005 à 02:37:44
une petite question que je viens de voir
lorsque le programme que je veux lancer possede une interface graphique il se lance
mais si je met
String cmd= "cmd.exe";
par exemple rien ne se passe a noter que mon programme TCP_c.exe n'est pas en interface graphique est ce que ca peut venir de la?
Marsh Posté le 05-06-2005 à 02:44:26
J'abandonne, tu lis rien de ce que j'écris. Ou alors tu ne comprends rien, mais dans ce cas il faudrait expliquer ce que tu ne comprends pas...
Marsh Posté le 05-06-2005 à 02:50:32
sisi j'ai bien lu et tester des solutions que ta proposé mais rien ne marche dernier exemple en date trouvé en parallele sur le net
String cmd = "CMD.EXE /C TCP_c.exe"; =>meme resultat donc rien
g ensuite mis TCP_c.exe dans un batch
String cmd = "CMD.EXE /C LancementTCP_c.bat"; => meme resultat donc rien encore une fois
Marsh Posté le 06-06-2005 à 12:01:09
quand tu lances un programme console C/C++ depuis java il ne t'ouvre pas de fenetre, il fait tout en arriere plan donc si tu veux pouvoir communiquer avec ton programme C/C++ tu dois rediriger tes flots standards.
essaye de jongler avec java.lang.Process.get[Input|Output|Error]Stream() et java.lang.System.set[In|Out|Err](...), tu dois pouvoir trouver une solution
Marsh Posté le 05-06-2005 à 01:27:19
Bonjour, dans le cadre d'un projet je dois lancer plusieurs applications a partir d'un programme java.
Premier lancement : le C++ je m'y suis pris comme ca et ca fonctionne
Ce programme C++ etant avec interface graphique:
Deuxieme lancement : le C sans interface graphique et je m'y suis pris de la meme facon :
Resultat : dans la console les 2 "ok" s'affiche mais le programme ne se lance pas
Si quelqu'un pourrait m'eclairer sur ce probleme je suis preneur