2009-05-10 6 views
1

Quel est le moyen le plus simple d'appeler un programme avec un morceau de code Java? (Le programme que je veux lancer est aiSee et il peut être exécuté à partir de la ligne de commande ou de Windows GUI, et je suis sur Vista mais le code sera également exécuté sur les systèmes Linux).Exécution d'un programme à partir du code Java

Répondre

7

Jetez un oeil à Process et Runtime classes. Gardez à l'esprit que ce que vous essayez d'accomplir n'est probablement pas indépendant de la plateforme.

Voici un petit morceau de code qui pourrait être utile:

public class YourClass 
{ 
    public static void main(String args[]) 
     throws Exception 
    { 
     Runtime rt = Runtime.getRuntime(); 
     Process proc = rt.exec("name_of_your_application.exe"); 
     int exitVal = proc.exitValue(); 
     System.out.println("Process exitValue: " + exitVal); 
    } 
} 

One question S.O. discuter des problèmes similaires. Another un. And un autre.

+0

Ok, merci beaucoup. Oui vous avez raison: il ne peut pas être indépendant de la plate-forme (puisque les deux systèmes auront probablement le programme dans un endroit différent). Qu'est-ce que je pensais avec ça? –

0

La difficulté que vous rencontrerez est comment obtenir l'application à connaître le chemin. Vous pouvez utiliser un fichier xml ou config, mais si vous utilisez ce lien, il doit expliquer comment exécuter un fichier: http://www.javacoffeebreak.com/faq/faq0030.html

+0

Je vais probablement passer comme argument de ligne de commande, comme l'a suggéré Nathan. C'est gênant, mais ça va devoir faire –

1

Vous pouvez obtenir une instance d'exécution en utilisant Runtime.getRuntime() et appeler la méthode exec du temps d'exécution, la commande pour exécuter le programme en tant qu'argument.

Par exemple:

Runtime runTime = Runtime.getRuntime();  
Process proc = rt.exec("iSee.exe"); 

Vous pouvez également capturer la sortie du programme en utilisant obtenir le InputStream du processus.

+0

d'accord, merci; cependant, puisque la sortie est graphique (aiSee affiche les graphiques des descriptions GDL), je ne vais probablement pas le traiter plus loin; mais il est bon de savoir que j'ai cette option –

0

Vous pouvez également envisager de transmettre une sorte d'argument à votre programme pour faciliter la recherche du programme spécifique que vous souhaitez exécuter.

Cela peut être avec des arguments de ligne de commande, des fichiers de propriétés ou des propriétés système.

Questions connexes