IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI et Outils pour Java Discussion :

erreur sur execution d'un script externe à l'application java.


Sujet :

EDI et Outils pour Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 496
    Par défaut erreur sur execution d'un script externe à l'application java.
    Bonjour

    Je n'arrive pas à exécuter un petit script shell à partir de mon application java.

    Lorsque j'ouvre une connexion avec le serveur unix avec telnet et je lance le script, il marche bien. Mais pas à partir de l'application java.

    Les droits du script sont rwx rwx rwx

    Voici le début du code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     // connection
                ftpbean.ftpConnect(hostname, login, password);
                // changement de répertoire
                ftpbean.setDirectory(path);                
                System.out.println("Changement de répertoire OK");
     
     
                //=====================================================
                Runtime runtime = Runtime.getRuntime();
                Process process = Runtime.getRuntime().exec(new String[] { "titi.sh*" , "ABC" } );

    et voici le code d'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    init:
    deps-jar:
    Compiling 1 source file to C:\Documents and Settings\.............
    compile:
    run:
    Changement de répertoire OK
    Une erreur de communication avec le serveur distant a eu lieu:
    java.io.IOException: Cannot run program "titi.sh*": CreateProcess error=2, The system cannot find the file specified
         at java.lang.ProcessBuilder.start(ProcessBuilder.java:459)
            at java.lang.Runtime.exec(Runtime.java:593)
            at java.lang.Runtime.exec(Runtime.java:466)
            at val_diamonds2.MyFtpClient.Go(MyFtpClient.java:41)
            at val_diamonds2.MyFtpClient.main(MyFtpClient.java:22)
    Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified
         at java.lang.ProcessImpl.create(Native Method)
            at java.lang.ProcessImpl.<init>(ProcessImpl.java:81)
            at java.lang.ProcessImpl.start(ProcessImpl.java:30)
            at java.lang.ProcessBuilder.start(ProcessBuilder.java:452)
            ... 4 more
    BUILD SUCCESSFUL (total time: 2 seconds)
    Merci de votre aide.

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 963
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 963
    Par défaut
    Citation Envoyé par diamonds
    Bonjour

    [code] // connection
    ftpbean.ftpConnect(hostname, login, password);
    // changement de répertoire
    ftpbean.setDirectory(path);
    [code]
    une connection FTP pour exécuter une commande sur l'hôte distant ?

    si vous voulez exécutez une commande via telnet, il faudrait commencer par ouvrir une session telnet avec l'hôte distant et non une connection ftp…

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 496
    Par défaut
    Citation Envoyé par JeitEmgie
    une connection FTP pour exécuter une commande sur l'hôte distant ?

    si vous voulez exécutez une commande via telnet, il faudrait commencer par ouvrir une session telnet avec l'hôte distant et non une connection ftp…
    C'est parce que je veux faire les deux dans le même programme.

    Je veux éxécuter un script et aussi télechargé un fichier.

    Faut-il alors ouvrir deux connections ? une ftp et l'autre telnet ?

    comment ouvrir une connexion telnet à partir de java ?

  4. #4
    Membre Expert
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 963
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 963
    Par défaut
    Citation Envoyé par diamonds
    C'est parce que je veux faire les deux dans le même programme.

    Je veux éxécuter un script et aussi télechargé un fichier.

    Faut-il alors ouvrir deux connections ? une ftp et l'autre telnet ?

    comment ouvrir une connexion telnet à partir de java ?
    dans le protocole FTP la commande ! permet d'invoquer une commande sur l'hôte et c'est la méthode "execute" de FTPBean qui permet de l'invoquer :

    ftpBean.execute("titi.sh");

    donc il n'est pas nécessaire d'ouvrir une session shell via telnet, ce qui de toute façon n'est pas recommandé question sécurité…
    et
    Runtime c'est pour exécuter une commande sur la machine locale pas sur le serveur…

  5. #5
    Membre Expert Avatar de gnto
    Homme Profil pro
    Ingénieur système logiciel
    Inscrit en
    Janvier 2006
    Messages
    923
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur système logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2006
    Messages : 923
    Par défaut
    The system cannot find the file specified
    Il trouve pas le fichier, C'est le bon nom du script ?

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 496
    Par défaut
    Citation Envoyé par gnto
    Il trouve pas le fichier, C'est le bon nom du script ?
    oui biensûr !

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 496
    Par défaut
    Citation Envoyé par JeitEmgie
    dans le protocole FTP la commande ! permet d'invoquer une commande sur l'hôte et c'est la méthode "execute" de FTPBean qui permet de l'invoquer :

    ftpBean.execute("titi.sh");

    donc il n'est pas nécessaire d'ouvrir une session shell via telnet, ce qui de toute façon n'est pas recommandé question sécurité…
    et
    Runtime c'est pour exécuter une commande sur la machine locale pas sur le serveur…
    voici ce que ça donne avec ftpbean.execute("titi.sh");

    Changement de répertoire OK
    Affichage du contenu du répertoire et transfert du premier fichier qui n'est pas un répertoire
    ftp.FtpException: 502 SITE command not implemented.
    une erreur FTP a eu lieu:
    at ftp.FtpBean.getRespond(FtpBean.java:1393)
    at ftp.FtpBean.ftpCommand(FtpBean.java:1445)
    at ftp.FtpBean.execute(FtpBean.java:1187)

  8. #8
    Membre Expert
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 963
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 963
    Par défaut
    Citation Envoyé par diamonds
    voici ce que ça donne avec ftpbean.execute("titi.sh");
    votre serveur vous répond qu'il ne supporte pas la commande "!"…

    vous ne pouvez pas utiliser FTP avec ce serveur pour ce que vous voulez faire…
    il faudra donc passer par une connection ssh…

Discussions similaires

  1. Erreur d'execution d'un script
    Par dsyann dans le forum VBScript
    Réponses: 2
    Dernier message: 09/02/2012, 20h00
  2. Erreur sur execution d'une procédure stockée
    Par Loubna.B dans le forum C#
    Réponses: 6
    Dernier message: 16/07/2009, 14h24
  3. erreur sur execution d'une requete WD11
    Par bdo0000 dans le forum WinDev
    Réponses: 1
    Dernier message: 08/02/2009, 14h15
  4. erreur sur execution requete
    Par choubak dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 14/05/2007, 11h42
  5. Réponses: 1
    Dernier message: 16/04/2007, 15h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo