Lancer un exe depuis une applet, l'exe étant sur un serveur

thierrylafleur Messages postés 10 Date d'inscription mercredi 5 avril 2006 Statut Membre Dernière intervention 27 octobre 2006 - 5 avril 2006 à 13:40
frank_sauvage Messages postés 56 Date d'inscription jeudi 14 avril 2005 Statut Membre Dernière intervention 9 avril 2006 - 6 avril 2006 à 19:22
Salut à tous,

Je suis en train de créer une applet Java qui consiste juste à lancer un exe sur un serveur étant accessible sur chaque poste client.
Mon exe est en fait un .bat qui a un paramètre.
Le nom de mon serveur est pro, l'exe est toto.bat et se trouve dans le répertoire applis de pro.
Si je lance, depuis un poste client avec cmd.exe, la commande : "\\pro\applis\toto.bat titi" cela fonctionne.
Par contre si, dans mon applet, je mets :

Runtime run = Runtime.getRuntime();
String cmd = "cmd /c //pro/applis/toto.bat titi";
Process proc = run.exec(cmd);

Cela ne fonctionne pas.

Merci d'avance pour votre aide.

6 réponses

mouzart Messages postés 161 Date d'inscription mardi 26 avril 2005 Statut Membre Dernière intervention 6 novembre 2008 4
5 avril 2006 à 14:27
slt,
je ss ce ke tu ve faire exactement le .bat est sur le serveur est ce que tu ve le lancer sur serveur ou sur la machine cliente?
fait un reply je peu t'aider.
0
thierrylafleur Messages postés 10 Date d'inscription mercredi 5 avril 2006 Statut Membre Dernière intervention 27 octobre 2006
5 avril 2006 à 14:44
En fait j'ai tomcat d'installé sur un serveur qui s'appelle 'svr'.
Je veux créer une JSP qui va lancer une applet sur un poste client.
Cet Applet aura pour but de lancer un exécutable qui se trouve sur un autre serveur (qui s'appelle 'pro'). Le .bat a un paramètre en entrée.
Je me suis mis sur un poste client et j'ai lancé avec cmd.exe la ligne suivante :
"\\pro\applis\toto.bat titi"
Et mon .bat a bien été exécuté.
Donc ce que je voudrais maintenant c'est que ça soit mon applet qui lance ce .bat.

J'espère avoir été clair.
0
thierrylafleur Messages postés 10 Date d'inscription mercredi 5 avril 2006 Statut Membre Dernière intervention 27 octobre 2006
5 avril 2006 à 15:06
J'ajoute, car je pense que je n'ai pas été très clair, que je veux lancer ce .bat depuis le poste du client mais ce .bat est sur un serveur ('pro') accessible par tous les clients potentiels.
0
mouzart Messages postés 161 Date d'inscription mardi 26 avril 2005 Statut Membre Dernière intervention 6 novembre 2008 4
6 avril 2006 à 11:19
slt,
T a pa essayé à le télécharger temporairement puis l'executer sur la machine cliente???
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
thierrylafleur Messages postés 10 Date d'inscription mercredi 5 avril 2006 Statut Membre Dernière intervention 27 octobre 2006
6 avril 2006 à 14:33
En fait, mon .bat, c'est juste un test que je veux faire car, à terme, ce que je veux exécuter sur chaque poste client c'est un exécutable qui est assez gros, donc pour le téléchargement, je pense pas que ce soit optimal. D'autant plus que chaque client peut l'exécuter en passant par le fameux serveur 'pro'. C'est pourquoi j'aimerai juste pouvoir exécuter, dans une Applet, un truc genre "\\pro\applis\toto.bat titi"".
0
frank_sauvage Messages postés 56 Date d'inscription jeudi 14 avril 2005 Statut Membre Dernière intervention 9 avril 2006
6 avril 2006 à 19:22
ce que tu cherches a faire si je comprends bien, c'est executer une methode a distance (methode qui lance l'exe) ?



donc appel de methodes distantes....remote methode invocation...RMI ^^



jettes un coup d'oeil a RMI...ce n'est pas forcement une mauvaise chose.



maintenant pour ce qui est de l'execution d'un programme qui n'est pas
sur la machine locale..non et non..ce n'est pas possible car tout
executable voit son code chargé en memoire pour son execution..ce n'est
pas du streaming. si tu as 80Mo, et que le code au debut appelle une
fonction à la fin..comment ferait il ?

ensuite..on ne parle meme pas des dependances telles que les dll.



seule parade : NFS ou SMB...

dans ton cas, et si et seulement si tu es en reseau local, tu peut tenter la chose suivante :



c'est une grosse bidouille mais elle marchera :



l'applet telecharge un .bat contenant un script de connection de
lecteur samba (netbios ou windows si tu preferes) tu attribues ce
lecteur par exemple a Z: puis tu executes l'appli depuis cette
resssource locale, qui est en fait sur le reseau.



je t'aurais bien fait le script..2 lignes..mais ca doit faire 10 ans
que j'ai pas fait de batch, et franchement entre nous, la
commande batch de montage d'un lecteur reseau smb m'est un peu sortie
de la tete.



enfin..ca ca marchera et ca devrais regler ton pb d'execution locale
sans telechargement..du moins pas de l'appli mais juste du script :)
(d'ailleurs..tu peux meme lancer les 2 commandes l'une apres l'autres
sans script ;))



par contre..pour que le serveur dise a l'applet d'executer le script tu
peux toujours regarder RMI meme si on peux bidouiller un truc plus
rapide...






Trop de bidouilles tuent la bidouille ;)



Cdlt;

FSA;
0
Rejoignez-nous