Lancer une application .exe à partir d'un browser via JAVA

Lancer une application .exe à partir d'un browser via JAVA - Java - Programmation

Marsh Posté le 16-08-2005 à 20:27:28    

Bonjour,
 
J'aimerais lancer notepad.exe a partir de IE ou FF.
 
Le code source JAVA (Exec.java) pour faire cette opération est:
 

Code :
  1. import java.applet.* ;
  2. import java.awt.* ;
  3. import java.io.*;
  4. public class Exec
  5. {
  6.   public static void main(String[] args)
  7.   {
  8.     String cmd;
  9.         cmd = "c:\\windows\\notepad.exe";
  10.        
  11.     try
  12.     {
  13.       Runtime r = Runtime.getRuntime();
  14.       Process p = r.exec(cmd);
  15.       p.waitFor();
  16.     }
  17.     catch(Exception e)
  18.     {
  19.       System.out.println("erreur d'execution " + cmd + e.toString());
  20.     }
  21.    }
  22. }


 
Une fois la class (Exec.class) faite, je lance mon programme localement (via ligne de commande: java Exec) ceci lance effectivement notepad.
 
Ma question est comment faire pour lancer notepad.exe a partir d'IE/FF en utilisant la class Exec.class?
 


---------------
I dont have any solution, but I certainly admire the problem
Reply

Marsh Posté le 16-08-2005 à 20:27:28   

Reply

Marsh Posté le 16-08-2005 à 20:59:15    

Il te faut créer un serveur qui écoute sur un port donné. Le browser est bêtement le client. Quand le serveur reçoit la requête adéquate, il lance l'appli voulue.
 
http://java.sun.com/docs/books/tut [...] g/sockets/
 
J'ai exactement ce que tu cherches sous la main. Un programme configuré via fichier XML, qui se charge du mapping entre des requêtes et la commande équivalente à exécuter.
 
Tu peux l'attaquer depuis un browser ou depuis un autre socket-based client.
 
Le serveur te donne aussi des infos sur les process démarrés, les process en cours etc.
 
Il prévoit aussi de lire l'output stream et l'error stream du process, ce qui est parfois obligatoire pour que celui-ci ne bloque pas.
 
[:pingouino]


Message édité par sircam le 16-08-2005 à 20:59:55

---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 16-08-2005 à 21:15:13    

sircam a écrit :


J'ai exactement ce que tu cherches sous la main. Un programme configuré via fichier XML, qui se charge du mapping entre des requêtes et la commande équivalente à exécuter.
[:pingouino]


 
Si tu peux partager ton programme :o  
 
Pour pouvoir lancer une application locale faut faire tout ceci?
La j'aurai vraiment besoin d'aide :o


---------------
I dont have any solution, but I certainly admire the problem
Reply

Marsh Posté le 16-08-2005 à 21:21:16    

WaVeR a écrit :

Pour pouvoir lancer une application locale faut faire tout ceci?


Non, ça, c'est du luxe. L'appli est générique et pas limitée à lancer notepad. Elle me sert aussi bien comme "magic packet" pour lancer et fermer des applis à distance que pour faire des benchmarks.
 
Tu peux te contenter de la partie "socket", c'est déjà pas mal. Tu devrais t'en sortir sans mutli-threading.
 

WaVeR a écrit :

La j'aurai vraiment besoin d'aide :o


On est là pour ça... [:djswad]
 

WaVeR a écrit :

Si tu peux partager ton programme :o


Hé hé hé, je m'y attendais à celle-là. [:klem3i1]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 16-08-2005 à 21:25:29    

Je suis dans la m?r?e, car j'ai vraiment rien pigé de ce que je dois faire. Je ne suis pas un gourou en JAVA. je ne fais pas du developpement web :o
 
J'ai cru comprendre que le faite de signé la classe permet de la lancer, est ce juste?


Message édité par WaVeR le 16-08-2005 à 21:26:14

---------------
I dont have any solution, but I certainly admire the problem
Reply

Marsh Posté le 16-08-2005 à 21:30:27    

Heck ? Ah OK, tu parlais d'une applet... Sorry, je pensais que le browser servait à lancer la commande à distance.
 
Ha ha ha.
 
Mouaip, par défaut, les applets présentent des restrictions liées à la sécurité, et une applet signée permet de lever ces restrictions.
 
Fais une recherche sur ce forum avec "applet signée" ou similaire; j'ai un jour vu un topic là-dessus.
 
[:pingouino]
 
Par curiosité, tu veux faire quoi avec ce système ?
 
[:hide]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 16-08-2005 à 21:38:38    

Au futur faire en sorte a ce qu'il execute en locale une application.exe chargé d'un serveur distant :o
 
J'ai deja essayé avec une apllet signée mais sa marche pas fort, je vois pas ou ca devrait coincé


Message édité par WaVeR le 16-08-2005 à 21:43:01

---------------
I dont have any solution, but I certainly admire the problem
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed