Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1377 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Ouvrir une nouvelle fenêtre shell avec un nouveau processus?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Ouvrir une nouvelle fenêtre shell avec un nouveau processus?

n°1357903
XK
Posté le 02-05-2006 à 16:20:37  profilanswer
 

Bonjour
 
Dans mon programme java en mode texte j'exécute une commande pour ouvrir une session telnet sur une machine distante. Etrangement aucune nouvelle fenetre ne s'ouvre et pas de traces de mon processus...
 

if (mess.startWith("telnet" ))
{
   try {
      Process p = Runtime.getRuntime().exec("cmd /c telnet "+ip);
   } catch (IOException e) {}
}


 
Comment faire pour que le processus que j'appel se lance dans une nouvelle fenetre shell?
Merci :hello:


Message édité par XK le 02-05-2006 à 16:27:57
mood
Publicité
Posté le 02-05-2006 à 16:20:37  profilanswer
 

n°1357942
sircam
I Like Trains
Posté le 02-05-2006 à 17:11:34  profilanswer
 

Dans ton cas précis, je te conseille de t'orienter vers un lib toute faite pour les appels telnet.
 
La gestion des process en Java, c'est le Mal.
 
Déjà, si tu évitais d'enterrer l'exception, il se pourrait que tu obtiennes plus d'info.
 
Chuis pas sûr que tu puisses obtenir la fenêtre DOS. Tu t'orientes dans la mauvaise direction à mon avis (appeler le dos prompt pour lancer un client telnet... trop de surcouches dans un contexte trop dégueu).
 
HTH
 
[:pingouino]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1358008
XK
Posté le 02-05-2006 à 18:27:17  profilanswer
 

Je n'ai rien qui sort en exception c'est ça le plus étrange...
Tout ce qui est avant la commande "Process p = Runtime.getRuntime().exec("cmd /c telnet "+ip);" et après est correctement exécutée, par contre la commande ne donne rien en sortie.
Où est sensé s'afficher la sortie? Même si c'est dans la même fenêtre ce n'est pas grave, ce que j'aimerai c'est pouvoir effectuer normalement mon telnet... :(
Merci pour tes conseils je vais chercher voir les lib telnet si il y a des choses intéressantes...

n°1358021
breizhbugs
Posté le 02-05-2006 à 18:56:11  profilanswer
 

Salut,
Faut lire la doc:
http://java.sun.com/j2se/1.4.2/doc [...] ocess.html
"The Runtime.exec methods may not work well for special processes on certain native platforms, such as native windowing processes, daemon processes, Win16/DOS processes on Microsoft Windows, or shell scripts. The created subprocess does not have its own terminal or console. All its standard io (i.e. stdin, stdout, stderr) operations will be redirected to the parent process through three streams (Process.getOutputStream(), Process.getInputStream(), Process.getErrorStream())."

n°1359143
modigliani
Posté le 04-05-2006 à 05:51:32  profilanswer
 

si tu veux inviter la fenetre dos et executer telnet je peux t assurer que le code que t'as taper est juste et que le processus est executé mais sans affichage de la fenetre dos c parceque tu utilise le path javaw.exe (qui permet l'execution des commandes dos sans afficher la fenetre) mais si tu utilise le path java.exe cela sera possible  

n°1359727
XK
Posté le 04-05-2006 à 15:43:57  profilanswer
 

Ok donc j'ai utilisé le programme JTA qui est en Java et supporte Telnet et SSH :)
 
La commande pour l'exécuter :
Runtime.getRuntime().exec("java -jar jta26.jar "+hostname);
 
Dommage qu'il ne soit pas possible de passer le nom d'utilisateur et le mot de passe en paramètre :(

n°1359766
Bidem
Posté le 04-05-2006 à 16:18:26  profilanswer
 

XK a écrit :

Ok donc j'ai utilisé le programme JTA qui est en Java et supporte Telnet et SSH :)
 
La commande pour l'exécuter :
Runtime.getRuntime().exec("java -jar jta26.jar "+hostname);
 
Dommage qu'il ne soit pas possible de passer le nom d'utilisateur et le mot de passe en paramètre :(


 
C'est vraiment n'importe quoi !!!
 
Quand tu veux utiliser un composant java, tu ne demandes pas au système d'exploitation de relancer une JVM, tu utilises les classes du composant directement !

n°1360080
post_it
Hmmmm!...
Posté le 04-05-2006 à 23:26:40  profilanswer
 

XK a écrit :


Runtime.getRuntime().exec("java -jar jta26.jar "+hostname);


 :love:


---------------
You need to get to the bottom of things...
n°1362216
XK
Posté le 09-05-2006 à 11:17:40  profilanswer
 

Bidem a écrit :

C'est vraiment n'importe quoi !!!
 
Quand tu veux utiliser un composant java, tu ne demandes pas au système d'exploitation de relancer une JVM, tu utilises les classes du composant directement !


Je le sais bien mais je veux que ce soit exécuté bien séparément du code serveur et la gestion des Threads ce n'est pas mon fort :sarcastic:

n°1372630
lauploix
Posté le 22-05-2006 à 22:19:30  profilanswer
 

Plusieurs conseils :
 
1) Il se trouve que pour une raison que j'ignore, les processus sont lancés soit depuis une console, soit depuis <pas une console>... or les processus en général ne flushent pas bien leur sortie qd ils ne sont pas lancés depuis une console.  
 
Conséquence : tu peux parfois bloquer sur une attente de sortie d'un processus alors que ce dernier a bien écrit sur la sortie... C'est difficile, car il faut lancer le processus fils avec les options ad-hoc, qui dépendent de ce dernier, pour qu'il flush bien. Exemple : j'arrive à bien récupérer la sortie d'un processus python si je le lance avec les options -i -u. Sinon, nada.
 
2) Je te conseille vivement l'utilisation des classes Telnet de Apache http://jakarta.apache.org/commons/net/
 
3) ...et aussi (pub perso) le projet yactu qui permet de lire facilement un flux de sortie de processus (donc un flux d'entrée pour java) avec des timeout, par exemple, pour éviter d'attendre un temps infini, mais aussi des regexps etc.
 
Laurent Ploix


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Ouvrir une nouvelle fenêtre shell avec un nouveau processus?

 

Sujets relatifs
Command shell Windows a la Linux/Unix?modification nom du nouveau classeur
Comment ouvrir les fichiers *.class?Disactiver l'agrandissement d'une fenetre en Java
"windows.h - 'empecher' fermeture fenetre" [opengl]Redirection + ouvrir 1 nouvelle fenêtre, le tout en une seule fois...
Ouvrir des JInternalFrame dans un JDesktopPaneProblème avec fenêtre graphique
Plus de sujets relatifs à : Ouvrir une nouvelle fenêtre shell avec un nouveau processus?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR