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

Java Discussion :

Appel script Perl avec arguments


Sujet :

Java

  1. #1
    Membre régulier
    Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Octobre 2004
    Messages : 201
    Points : 96
    Points
    96
    Par défaut Appel script Perl avec arguments
    Bonjour,

    Je voudrais appeler un script Perl depuis ma classe java. Ce script a 2 arguments . Voila ce que je fais mais j'ai une jolie "Command failure". J'ai essaye plusieurs combinaisons du tableau command en vain.
    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
    21
    22
    23
    24
     
     
     
    	public static void main(String args[]) {
     
    		try {
     
    			String[] command = {"C:\\Perl\\bin\\perl.exe","C:\\dev\\Perl\\test.pl",args[0],args[1]};
     
    			Process p = Runtime.getRuntime().exec(command);
    			p.waitFor();
    			if (p.exitValue() == 0) {
    				System.out.println("CommandSuccessful");
    			} else {
    				System.out.println("CommandFailure");
    			}
     
    		} catch (IOException e) {
    			e.printStackTrace();
    		} catch (InterruptedException e) {
    			e.printStackTrace();
    		}
     
    	}
    J'ai essaye avec un autre script tout simple qui affiche "bonjour" et ca marche, mais la pas moyen de l'executer...
    Si vous pouviez m'aider.

    Merci.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Août 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2006
    Messages : 80
    Points : 75
    Points
    75
    Par défaut
    Yo!

    Tu n'es pas forcé de mettre ça dans un tableau.

    Tappe la commande en console qui t'affiche "bonjour".
    Et recopie la ligne dans un String.

    Si ça ne fonctionne toujours pas, tu peux nous montrer le code de retour.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    String cmd = "C:\\Perl\\bin\\perl.exe C:\\dev\\Perl\\test.pl " + args[0] + " " + args[1];
    Process p = Runtime.getRuntime().exec(cmd);
    int ret = p.waitFor();
    System.out.println("> " + ret);
    PS: File.separator c'est mieux que "\\"

  3. #3
    Membre régulier
    Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Octobre 2004
    Messages : 201
    Points : 96
    Points
    96
    Par défaut
    non ca veut pas
    Voila le code retour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    > 2
    CommandFailure

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Août 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2006
    Messages : 80
    Points : 75
    Points
    75
    Par défaut
    Es-tu sur de copier exactement la même ligne?
    Si ça fonctionne en ligne de commande, ça doit forcément fonctionner via le Process.
    Met la commande perl dans le PATH, et glisse ton script perl dans le même répertoire que de la ou tu lance ton appli java.
    Ca évitera déjà d'avoir des chemins comme ça.

    Ca m'arrive encore fréquemment de faire appel à des scripts perl, mais plutôt sur unix. Et je n'ai jamais eu le moindre problème, ça doit venir des chemins.

    Essaie toujours avec un script sans aucun argument.

  5. #5
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par yannick1717 Voir le message
    Tu n'es pas forcé de mettre ça dans un tableau.
    Non... mais c'est fortement conseillé afin de bien séparer les paramètres...



    Sinon tu ne traites pas les flux d'E/S de ton script, donc tu ne peux pas voir son résultat et encore moins ses erreurs...



    Un peu de lecture :


    a++

  6. #6
    Membre régulier
    Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Octobre 2004
    Messages : 201
    Points : 96
    Points
    96
    Par défaut
    oui c'est ce que j'ai fait et j'ai trouve l'erreur, le script est bien appele mais l'erreur venait du script lui meme...
    En effet je fais appel a un fichier ds ce script et il ne trouvai pas ce fichier car je n'ai pas mais le chemion complet jusqu'au fichier.
    Pourtant ca marche en lancant le script depuis la console.

    enfin bref corrige.
    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Script perl qui appelle un script perl avec un time
    Par lovelace63 dans le forum Programmation et administration système
    Réponses: 3
    Dernier message: 21/09/2012, 19h40
  2. [Système] Appel script perl, pas de création de fichier
    Par trollanfer dans le forum Langage
    Réponses: 2
    Dernier message: 11/12/2008, 22h08
  3. [Système] Lancer un script perl avec PHP
    Par pepite dans le forum Langage
    Réponses: 2
    Dernier message: 09/01/2006, 12h30
  4. Réponses: 4
    Dernier message: 01/06/2005, 17h01
  5. Réponses: 6
    Dernier message: 23/05/2005, 08h33

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