begin process at 2012 02 15 16:55:51
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Java

 > 

Archives

 > 

Systeme

 > 

Lancement d'application à partir de Java


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Lancement d'application à partir de Java

lundi 29 septembre 2003 à 21:31:45 | Lancement d'application à partir de Java

BugsByte

Salut,

J'ai plusieurs questions concernant le lancement d'application à partir d'un programme Java:

Est-il possible de lancer une application à partir d'un programme Java ?
Si oui, comment ? Peut-on savoir quand l'application se termine ?

Est-il possible de lancer l'application par défaut associé à un fichier,
depuis un programme Java (ex: le lancement d'un fichier .doc lance Word et ouvre le fichier dans celui-ci) ?

Merci d'avance
BugsByte
mercredi 1 octobre 2003 à 05:50:15 | Re : Lancement d'application à partir de Java

JHelp

Salut,
Il est possible de lancer une application à partir d'un programme Java.
La solution est OS dépendante, car la commande intérieur dépend de l'OS. Par exemple on ne mettra pas la même chose pour Win98, Win XP, Linux, Mac, ... ceci étant dut principalement que la gestion des applications n'est pas tout à fait la même ou varie complétement pour chaqu'un d'eux.
Aprés cet avertissement, voici la façon dont on procéde, on utilise les classes Runtime (java.lang) et Process (java.lang).
Runtime est l'environement d'éxécution, et Process le processus (ou application) en exécution.
Les étapes nécéssaires :
1) mettre dans une chaîne de caractères la commande systéme qui lance l'application. En général, nom de la comande, nom de l'application, pramétres. Ici j'appel cette chaine "commande"
2) Récupérer l'environement d'éxecution :
Runtime environement = Runtime.getRuntime();
3) Créer le processus d'excussion :
Process processus = environement.exec(commande);
Attention, ne pas oubliser de capturer l'exception IOException (java.io), pour traiter les problème d'éntrée/sortie éventuels

Maintant le processus est lancé.
Pour communiquer avec lui, la classe Process posséde quelques méthodes interessantes :

getOutputStream, permet d'envoyer des informations aux processus. Il est judicieux d'englober ce flux dans un flux en buffer, en effet, on ne sait pas quand les informations seront traitées.

getInputStream, permet de recvoir des informations de la part du processus. Comme on ne sais pas quand ces infos arrivent, ni à quelle fréquence, il est judicieux d'encapsuler ce flux dans un flux en buffer

getErrorStream, flux des erreurs provoquées par le processus. Même remarque que précédement.

waitFor(), attend la fin du processus. Il renvoie 0, si la sortie du processus est normale. Sinon c'est un code d'erreur de sortie qui dépend de l'application

exitValue(), la valeur produite à la sortie de l'application. Il renvoie 0, si la sortie du processus est normale. Sinon c'est un code d'erreur de sortie qui dépend de l'application

destroy(), détruit le processus. Attention avec cette méthode, une destruction sauvage peut provoquée des dégats, cela dépend de l'application.

Bon ça répond à quelques une de tes questions

Pour le lancer de l'application par défaut, certains OS inclus cette possibilité, il s'aggit en fait d'une application qui choisit la bonne application à utiliser. Le problème est de savoir quel est son nom et comment l'invoquer.

JHelp
jeudi 22 juillet 2004 à 09:55:26 | Une autre possibilité avec ant

ladi

Une autre solution consiste à utiliser le plug-in ant
http://ant.apache.org

Dans Eclipse il suffit de faire :

click droit sur son projet->properties->java build path

Puis clicker sur add externel jar et de naviguer depuis le repertoire d'installation d'éclipse jusqu'à plugins/org.apache.ant (installé par défaut)

Voici un exemple :
[font=Courier New]]
import org.apache.tools.ant.taskdefs.*;
import org.apache.tools.ant.types.Commandline;
import org.apache.tools.ant.Project;
public class Invite {

public void execute(String command) {
System.out.println("on execute "+command);
Project project = new Project();
project.init();
project.getBaseDir();
ExecTask exec = (ExecTask) project.createTask("exec");
Commandline cmd = new Commandline(command);
exec.setCommand(cmd);
exec.execute();
System.out.println("commande executée\n");
}

}

[/font=Courier New
Cette solution a personnellement mieux marcher que la solution avec getruntime

amusez vous bien les ptits malins
vendredi 3 juin 2005 à 18:22:23 | Re : Lancement d'application à partir de Java
samedi 5 avril 2008 à 00:18:52 | Re : Lancement d'application à partir de Java

ABCHA

, Comment peut on executer (ou lancer l'executable ) un prog en C++ a partir d'une classe java  ( avec ou sans main())
merci pour votre reponse .( le plus vite possible  svp car  c concernant  le pfe ).



Cette discussion est classée dans : java, programme, application, partir, lancement


Répondre à ce message

Sujets en rapport avec ce message

Lancement d'une application java [ par p0236 ] <im Lancer java à partir d'un programme C [ par fabrice_pi ] Salut,Tout est dans le titre ! Ou presque... Je suis sous windows et je cherche à lancer un programme java (graphique) à partir d'un exécutable (C com Surveillance machine a partir d'un programme Java [ par seclate ] Bonjour, je dois developper un programme Java de surveillance d'ordinateur a distance (avec des commandes telles que place disque occupée, liste des p Lancement d'une application [ par bmikl59 ] Voila mon probleme, J'ai crée un ptit serveur en java (ce sont des tests...) et je souhaite tester le code.Pour cela on m'a expliqué qu'on pouvait lan lancer un programme fortran à partir d'un programme java [ par lafolle24320 ] Bonjour,Est il possible de lancer un programme Fortran à partir d'un programme JAVA. je serais heureuse que ce soit le cas. Et si c'est le cas pourrie lancer un .jar à partir d'une application java [ par laurentsauvet ] Bonjour à tous,J'ai créé une application java avec netbeans. J'en ai re-créer une autre et dans la première j'ai fait un bouton qui (théoriquement) do lancement appli [ par lafolle24320 ] Bonjour, voici mon problème : depuis une application java dans le code je fais un : Runtime.getRuntime().exec("java -jar cassis.rotdiagram.jar"); p exécution d'une application à partir d'un programme java [ par didiss1 ] Bonjour;De retour mais cette fois je cherche quelques détails!!Je suis arrivé à exécuter une application depuis java mais pas l'application que je vou lancer une application java [ par lak75 ] Bonjour,J'ai une application java qui tourne sur un pda. pour le moment je lance l'application a partir du pc via web sphere studio (la connexion est


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,760 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales