Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Lancement d'application à partir de Java [ Archives / Systeme ] (BugsByte)

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é 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

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,452 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.