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

Langage Java Discussion :

Exécution d'un script à partir de code java


Sujet :

Langage Java

  1. #1
    Membre régulier
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mars 2008
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Mars 2008
    Messages : 19
    Points : 76
    Points
    76
    Par défaut Exécution d'un script à partir de code java
    Bonjour,

    J'aimerais, à partir de code java (sous ubuntu), exécuter un script shell qui exécute une commande que j'insère habituellement dans mon terminal. Voici mon script (élémentaire) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    #!/bin/sh
     
    dot -Tps -o automaton.pdf automaton.dot
    echo "PDF généré"
    Ce script fonctionne parfaitement lorsque je le lance à partir de mon terminal, en m'étant préalablement positionné dans le bon répertoire (celui qui contient automaton.dot). Le script me permet de générer le fichier automaton.pdf qui est produit dans ce même répertoire.

    Voici le code java qui est censé exécuter ce script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    try {
    			Runtime runtime = Runtime.getRuntime();
    			Process process = runtime.exec("sh /monchemin/script.sh");
    			process.waitFor();
    			System.out.println("process exit value: " + process.exitValue());
    		}
    		catch(Exception ex) {
    			ex.printStackTrace();
    		}
    et voici ce que j'obtiens à l'exécution de mon code java :
    Le problème c'est que mon fichier automaton.pdf n'est jamais produit. Je ne le trouve pas dans mon répertoire. Alors que lorsque j'insère directement ma commande dans le terminal ce pdf est bien généré... J'ai essayé pas mal de choses en cherchant des solutions sur différents forum mais en vain...

    Si quelqu'un peut m'aider... D'avance merci

  2. #2
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 13
    Points : 11
    Points
    11
    Par défaut
    salut, ton programme a -til les droits pour écrire ce pdf dans le dossier cible ?

    as tu essayer de creer un fichier vide à l'endroit de ton dossier cible:
    boolean created = new java.io.File("/monchemin/testFile").createNewFile();

    sinon si tu as essayé de remplacer
    Process process = runtime.exec("sh /monchemin/script.sh");
    par
    Process process = runtime.exec("dot -Tps -o automaton.pdf automaton.dot");
    ?

  3. #3
    Membre régulier
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mars 2008
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Mars 2008
    Messages : 19
    Points : 76
    Points
    76
    Par défaut
    Tout d'abord merci pour ta réponse

    ton programme a -til les droits pour écrire ce pdf dans le dossier cible ?
    oui, il les a

    as tu essayer de creer un fichier vide à l'endroit de ton dossier cible:
    boolean created = new java.io.File("/monchemin/testFile").createNewFile();
    je n'avais pas essayé mais je viens de le faire et le fichier est bien créé...

    sinon si tu as essayé de remplacer
    Process process = runtime.exec("sh /monchemin/script.sh");
    par
    Process process = runtime.exec("dot -Tps -o automaton.pdf automaton.dot");
    ?
    Je viens d'essayer et ça ne change rien, le pdf n'est toujours pas généré... Et j'ai ceci comme résultat dans ma console:
    ce qui indique une terminaison anormale du process contrairement à ce que j'avais avant...

    Voilà rien de bien concluant malheureusement, si tu as d'autres idées ou si d'autres en ont n'hésite(z) pas, merci

  4. #4
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 13
    Points : 11
    Points
    11
    Par défaut
    et ta essayé avec le chemin en plus ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Process process = runtime.exec("dot -Tps -o /monchemin/automaton.pdf /monchemin/automaton.dot");
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    #!/bin/sh
     
    dot -Tps -o /monchemin/automaton.pdf /monchemin/automaton.dot
    echo "PDF généré"

  5. #5
    Membre régulier
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mars 2008
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Mars 2008
    Messages : 19
    Points : 76
    Points
    76
    Par défaut
    Nickel ça marche maintenant !
    J'ai utilisé ton premier bout de code et donc je n'ai même plus besoin de mon script...

    Un grand merci

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 12/06/2009, 16h13
  2. [Metro] Génération de WSDL à partir de code java
    Par Eògan dans le forum Services Web
    Réponses: 1
    Dernier message: 23/03/2009, 13h56
  3. Réponses: 2
    Dernier message: 07/06/2007, 13h36
  4. .bat à partir de code java
    Par mmb04 dans le forum Langage
    Réponses: 7
    Dernier message: 03/05/2007, 09h27
  5. Réponses: 2
    Dernier message: 11/01/2007, 12h00

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