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 :

Problème de clean and build


Sujet :

Langage Java

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 253
    Par défaut Problème de clean and build
    Bonjour,

    j'ai une classe qui utilise process runtime() pour exécuter un script shell,
    String[] cmd = { "script/bin/sh.exe", "script/script.sh" };
    Runtime.getRuntime().exec(cmd);


    Quand j'exécute le programme dans mon IDE, NetBeans 6.5 tout fonctionne parfaitement mais quand je génère mon jar, il n'arrive pas à trouver le binaire sachant que j'ai bien mis le sh.exe dans le projet et c'est pour cela d'ailleurs que mon programme s'exécute correctement quand je l'exécute dans netbeans mais par contre le jar généré ne fonctionne pa

    merci pour votre aide.

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    sauf que c'est une commande "système" que tu exécute, et ton OS il sais pas ce que c'est un jar et n'ira pas tripatouiller dedans. Si t'as pas un fichier script/bin/sh.exe sur le disque, ta commande marchera pas.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 253
    Par défaut
    tu veux dire que je dois spécifier en dure le chemin de mon sh.exe. sachant que j'ai bien ajouté le sh.exe dans mon projet si non, ma classe n'aura pas pu marcher. pouvez vous être plus claire svp.

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    une fois le jar généré, ton sh.exe se trouve ou par rapport à lui? Le chemin que tu indique est par rapport au répertoire courant, et c'est rarement une bonne idée car tu ne peux pas prévoir, à l'exécution de ton application, quel sera le répertoire courant (ce ne sera pas nécessairement celui qui contient le jar)

    Donc oui, généralement, on utilise un chemin absolu.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 253
    Par défaut
    même si je l'exécute à partir de son emplacement, le problème reste le même, quand je génère mon jar, avec cleand and build, il ne fonctionne pas!!!!!!!

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    et il te sort quoi comme message d'erreur à l'appel de exec?

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 253
    Par défaut
    un message du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    java.io.IOException: Cannot run program "script/bin/sh.exe": CreateProcess error=2, Le fichier spÚci
    fiÚ est introuvable
            at java.lang.ProcessBuilder.start(Unknown Source)
            at java.lang.Runtime.exec(Unknown Source)
            at java.lang.Runtime.exec(Unknown Source)
            at ThreadGUI.Thread_Action.run(Thread_Action.java:66)
    Caused by: java.io.IOException: CreateProcess error=2, Le fichier spÚcifiÚ est introuvable
            at java.lang.ProcessImpl.create(Native Method)
            at java.lang.ProcessImpl.<init>(Unknown Source)
            at java.lang.ProcessImpl.start(Unknown Source)

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 253
    Par défaut
    je rappelle que cela arrive seulement quand je build mais dans mon IDE (NetBeans 6.5), je n'ai pas ce problème

  9. #9
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    ca prouve seulement que ton répertorie courant quand tu lance dans l'ide et quand tu lance le jar n'est pas le meme.

    Comment lance tu le jar? Quel est le répertoire courant à ce moment là?
    (tu peux l'afficher avec System.out.println(System.getProperty("user.dir")) Ou se trouve le fichier sh.exe par rapport à ce répertoire. Affiche nous cette hierarchie.

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 253
    Par défaut
    ton System.out.println(System.getProperty("user.dir")) a donné ceci :

    C:\Documents and Settings\zenadm\Bureau\PlateFormeTest\TestThread

    et pour lancer le jar je fait ceci
    java -jar "C:\Documents and Settings\zenadm\Bureau\PlateFormeTest\TestThread\dist\TestThread.jar"

  11. #11
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    as-tu bien un
    C:\Documents and Settings\zenadm\Bureau\PlateFormeTest\TestThread\script\bin\sh.exe
    ? parce que c'est là que ton code va aller le chercher. Si tu l'a mis dans dist\script\bin\sh.exe, alors il va falloir faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    cd "C:\Documents and Settings\zenadm\Bureau\PlateFormeTest\TestThread\dist\" 	
    java -jar TestThread.jar

  12. #12
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 253
    Par défaut
    ça marche toujours pas!!
    pour expliquer le problème avec tous les détaille :
    svoila mon projet s'appelle TestThread l'arborescence est la suivente :
    - TestThread
    +build
    -dist
    +bin
    script.sh
    +script
    -src
    +thread
    -dist
    +bin
    script.sh
    vous allez me dire peut être que j'ai deux dossier script. en effet mais le premier (script qui est dans src) est celui que mon NetBeans utilise pour exécuter le programme (je le sais par ce que dés que je le déplace ce dossier mon programme plante). et l'autre script celui qui dans le dossier dist est utilisé pour ajouter le script dans le jar, je le sais car, quand je le supprime je trouve pas mon dossier script dans le jar.

    je suis complètement perdu les gars


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    String[] cmd = { "script/bin/sh.exe", "script/script.sh" };
     p = Runtime.getRuntime().exec(cmd);

  13. #13
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    désolé, mais je ne sais pas lire ton arborescence et je ne vois pas ou est sh.exe


    Tu dois, pour ton code, avoir cette structure:



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    script/
      bin/
        sh.exe
      script.sh
    projet.jar
    et pour que ton code marche, il faut faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    cd <repertoire ou se trouve tout ca>
    java -jar projet.jar
    note que script.sh et sh.exe n'ont rien à faire *dans* le jar!

  14. #14
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 253
    Par défaut
    oui tu avais tout a fait raison, j'ai copié le dossier script dans dist, juste à cote de mon jar, et ça marche mais par contre je me demande ce que je vais faire si je vais rendre mon jar exécutable, avec Launch4j par exemple, ou tout simplement le donner à quelqu'un d'autre.
    est ce que il faut que je lui donne le jar tout simplement ou tout le dossier dist!?

Discussions similaires

  1. Problème de "clean and build" dans NetBeans
    Par maquoi dans le forum NetBeans
    Réponses: 1
    Dernier message: 06/11/2014, 12h08
  2. Problème avec clean and build
    Par vietbach dans le forum Maven
    Réponses: 1
    Dernier message: 25/03/2014, 10h49
  3. Clean and Build - Netbeans
    Par sipatsymasaka dans le forum NetBeans
    Réponses: 0
    Dernier message: 16/03/2012, 08h42
  4. [MySQL] probléme select opérateur AND
    Par Anardil dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 11/07/2007, 14h48
  5. [JTable]Problême de Look and Feel???
    Par D-Phaz dans le forum Composants
    Réponses: 1
    Dernier message: 05/08/2005, 15h24

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