Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1291 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Appel de commande shell unix en java

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Appel de commande shell unix en java

n°1331084
obut76
Posté le 23-03-2006 à 15:03:44  profilanswer
 

Salut a tous,
 Je suis entrain de reprendre mes cours et notes de Java et à l'instant ou je vous parle, je me pose une question.
Peut on faire et si oui comment apeller des commandes de shells Unix dans un programme?

mood
Publicité
Posté le 23-03-2006 à 15:03:44  profilanswer
 

n°1331168
claque2000
GamerTag : claquos2000
Posté le 23-03-2006 à 16:17:20  profilanswer
 

obut76 a écrit :

Salut a tous,
 Je suis entrain de reprendre mes cours et notes de Java et à l'instant ou je vous parle, je me pose une question.
Peut on faire et si oui comment apeller des commandes de shells Unix dans un programme?


.
Tu peux regarder la doc pour la classe Runtime et l'utilisation de la fonction exec.


---------------
Linux registered user #352556
n°1331175
obut76
Posté le 23-03-2006 à 16:23:37  profilanswer
 

C'est ce que je viensd de faire, merci par contre avec le code suivant:
public class Main {
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args)     throws Exception {
        // TODO code application logic here
 
        System.out.println("Appel de commandes UNIX en java" );
        /*Déclaration des variables*/
        String [] tab_commandes = new String[2];
        int cpt_tab=0;
         
         
        /*Initialisations du tableau des commandes*/
        tab_commandes[0]="/bin/ls";
        tab_commandes[1]="/home/obut76";
         
        System.out.println("Contenu du tableau des commandes:" );
        while (cpt_tab < tab_commandes.length)
        {
            System.out.println("Col. "+ cpt_tab + " -> " + tab_commandes[cpt_tab]);
            cpt_tab++;
        }
         
        Process processus=Runtime.getRuntime().exec(tab_commandes);
        System.out.println("Processus: " + processus);
        System.out.println("processus.getOutputStream(): " + processus.getOutputStream());
        System.out.println("Fin de l'appel de commandes UNIX en java" );
         
         
    }
     
}
 
Je m'attendais en plus de mes println de bases a avoir un résultat sur la sortie standard...me trompes je?
 
Aprés je me remets à mes révisions...lol

n°1331185
Bidem
Posté le 23-03-2006 à 16:33:54  profilanswer
 

Si tu veux récupérer la sortie standard de ton process, c'est processus.getInputStream() qu'il faut utiliser (Cf. javadoc de Process).
 

n°1331194
obut76
Posté le 23-03-2006 à 16:41:00  profilanswer
 

merci je vais voir

n°1331196
claque2000
GamerTag : claquos2000
Posté le 23-03-2006 à 16:44:59  profilanswer
 

obut76 a écrit :

merci je vais voir


 
Et de plus, faire un println, que ce soit sur un Input ou un OutputStream, ca te retourne l'adresse de la variable dans la JVM et pas son contenu.
 


---------------
Linux registered user #352556
n°1331221
moi23372
Posté le 23-03-2006 à 17:15:39  profilanswer
 

faire appel à des commandes de l'OS enlève à JAVA sa puissance de portabilité. A vrai dire, il n'a pas été conçu pour ce genre de chose, bien qu'il le permet quand même. Donc à utiliser avec des pincettes.

n°1331239
claque2000
GamerTag : claquos2000
Posté le 23-03-2006 à 17:37:07  profilanswer
 

moi23372 a écrit :

faire appel à des commandes de l'OS enlève à JAVA sa puissance de portabilité. A vrai dire, il n'a pas été conçu pour ce genre de chose, bien qu'il le permet quand même. Donc à utiliser avec des pincettes.


 
Tout à fait. Toutefois si c'est pour une utilisation des commandes de base Unix, la portabilité sera juste perdue pour windows. Encore qu'il vaut mieux faire gaffe aux options qui sont pas forcément les mêmes d'un Unix à l'autre.


---------------
Linux registered user #352556
n°1331628
Bidem
Posté le 24-03-2006 à 12:16:25  profilanswer
 

Au fait quel est le but de ton programme ?
 
Si ce que tu veux faire, c'est voir comment on peut executer des commandes du système alors j'ai rien à dire.
 
Par contre si ton but est de lister les fichiers d'un répertoire alors il y a un moyen de faire ça autrement.
 
Cf. la classe java.io.File qui contient tout ce qu'il faut.
En particulier la méthode list() qui retourne la liste des fichiers et répertoires ;)
 

n°1461594
burn2
ça rox du poney
Posté le 20-10-2006 à 17:45:01  profilanswer
 

Moi j'ai un petit problème je voudrais faire la même chose mais sous windows; en gros je voudrais lancer la commande "cls" pour nétoyer la console mais je ne vois pas comment faire :/ Tout ce que je trouve ne marche pas, quelqu'un aurait une idée svp? :(


---------------
"C'est vrai qu'un type aussi pénible de jour on serait en droit d'espérer qu'il fasse un break de nuit mais bon …"
mood
Publicité
Posté le 20-10-2006 à 17:45:01  profilanswer
 

n°1461770
lonely
Posté le 21-10-2006 à 00:13:10  profilanswer
 

Pour connaitre le nom de l'OS, la commande System.getProperty("os.name" ) retourne le nom du système d'exploitation. Les OS Windows commencent toujours par "Windows".
 
Ensuite, il faut utiliser rundll32
http://www.javaworld.com/javaworld [...] tip66.html

n°1915913
gillin
Posté le 17-08-2009 à 17:16:31  profilanswer
 

Je suis totalement débutant en java mais j'ai hérité d'une application en java dans laquelle je dois faire un appel à une commande Unix du style 'ps -ef'.
L'application tourne sous IE et la machine est sous unix.
J'ai lu tous les posts mais serait-il possible d'avoir un bout de code pour éclaircir la réponse s'il vous plait  car je ne vois pas comment faire cet appel et récupérer le résultat de la commande.
Merci

n°1915920
pataluc
Posté le 17-08-2009 à 17:30:46  profilanswer
 

Merci pour ce déterrage...
 
j'hésite entre STFW, LMGTFY et RTFM... ^^

n°1915928
mel21lio
Tux
Posté le 17-08-2009 à 17:52:04  profilanswer
 

hello regarde ma classe
 
la doc
http://gadille.free.fr/doc/java/te [...] Utils.html
la classe
http://gadille.free.fr/doc/java/te [...] ssing.java
le test
http://gadille.free.fr/doc/java/te [...] ssing.java
 
un exemple d'utilisation  
SystemProcessing sp = new SystemProcessing();
sp.executeCmd("hostname -i" );
ip=sp.readLine(2);
 
 
 

n°1915929
mel21lio
Tux
Posté le 17-08-2009 à 17:52:25  profilanswer
 

tu a d'autre doc sur mon site http://gadille.free.fr

n°1916124
gillin
Posté le 18-08-2009 à 11:27:33  profilanswer
 

Merci, j'ai trouvé la réponse.

n°1916623
gillin
Posté le 19-08-2009 à 14:22:59  profilanswer
 

moi23372 a écrit :

faire appel à des commandes de l'OS enlève à JAVA sa puissance de portabilité. A vrai dire, il n'a pas été conçu pour ce genre de chose, bien qu'il le permet quand même. Donc à utiliser avec des pincettes.


 
C'est juste. Cependant, existe-t-il une méthode en java permettant de connaitre la liste des process tournant sur la machine (le serveur Unix) ? Cela éviterait justement l'appel à des commandes unix. Le but étant de regarder si un traitement shell est en cours d'exécution pour ne pas faire de déplacement de fichier intempestif pendant ce temps.

n°1916776
pataluc
Posté le 19-08-2009 à 17:10:35  profilanswer
 

gillin a écrit :


 
C'est juste. Cependant, existe-t-il une méthode en java permettant de connaitre la liste des process tournant sur la machine (le serveur Unix) ? Cela éviterait justement l'appel à des commandes unix. Le but étant de regarder si un traitement shell est en cours d'exécution pour ne pas faire de déplacement de fichier intempestif pendant ce temps.


 
t'as une ip chinoise? t'as pas accès à google? :P
 
en tout cas je ne crois pas que ce soit possible... au mieux tu peux peut être lister les jvm qui sont en cours, mais c'est tout.

n°1916779
gillin
Posté le 19-08-2009 à 17:21:40  profilanswer
 

pataluc a écrit :


 
t'as une ip chinoise? t'as pas accès à google? :P
 
en tout cas je ne crois pas que ce soit possible... au mieux tu peux peut être lister les jvm qui sont en cours, mais c'est tout.


 
C'est bien parce que j'ai accès à google que j'ai eu la référence de ce site sur lequel je m'informe ... :pt1cable:  
 
Merci tout de même. :jap:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Appel de commande shell unix en java

 

Sujets relatifs
[C#] appel d'une méthode de classe mèrejava: oracle.xml.sql.query oracle.jdbc.driver
Java, Excel et tableaux croisés dynamiques[Java]Arbre n-aire
position et colision(en commande)[PERL] Shell et texte fixe
commande pour lancer un exe en c/c++java - serialisation
[resolu]appel d une sub depuis un autre classeurAppel de fonction JS
Plus de sujets relatifs à : Appel de commande shell unix en java


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR