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

Entrée/Sortie Java Discussion :

[JAR] comment executer un fichier inclus dans un JAR


Sujet :

Entrée/Sortie Java

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 11
    Points : 10
    Points
    10
    Par défaut [JAR] comment executer un fichier inclus dans un JAR
    salut,

    j'ai crée un jar qui contient plusieurs package et aussi un dossier avec des fichiers config.

    donc pour accéder a un fichier inclus dans le jar j'utilise :

    NomClass.class.getResourceAsStream(path), et ça marche très bien,

    le problème c que j'ai un fichier EXE inclus aussi dans le jar, et j'arrive pas a l'exécuter depuis le jar.

    donc je suis obliger de l'inclure a part dans le projet pour pouvoir l'exécuter : Process proc = r.exec(cmd);

    donc si quelqu'un a une solution , merci d'avance.

  2. #2
    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,


    Il faut l'extraire du jar...

    a++

  3. #3
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 11
    Points : 10
    Points
    10
    Par défaut
    merci pour la réponse hyper rapide,

    donc il faut l'extraire sur disque , et après l'exécuter normalement,?

    si c bien cela , merci de me passer la syntaxe qu'il faut.

  4. #4
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 11
    Points : 10
    Points
    10
    Par défaut
    j'arrive pas a extraire le jar

    j'ai essaié avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Runtime r = Runtime.getRuntime();
    String ss="cmd /c jar -xfv c:\\Name.jar";
    try {
     
    	     Process p = r.exec(ss);
    	     p.waitFor();
    		}
    		catch (Exception e) {
    		    System.out.println("erreur!");
    		    System.out.println(e);
    		}
    ca marche pas ,
    alors que quand je lance la meme cmd dans un invite de commande dos , ca marche !!!!!!!!!!!!!!!!!!!!!!!

  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
    Lorsque je parlais d'extraire je pensais plutôt à une copie de flux en Java...


    Sinon en ce qui concerne l'exécution de programme externe IL FAUT TRAITER LES FLUX D'ENTREE/SORTIE !

    Un peu de lecture :


    a++

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 19
    Points : 13
    Points
    13
    Par défaut
    Bonjour,

    J'ai exactement le même problème. D'après mes multiples recherches, il semblerait bien qu'en effet il faille obligatoirement extraire le fichier .exe. C'est donc ce que j'ai essayé de faire. Générer le fichier .exe dans un répertoire temporaire et qui sera supprimé à la fin de l'exécution de l'application.

    Le fichier .exe est bien généré (taille identique au fichier original), ainsi que trouvé lors de la tentative d'exécution. Par contre, j'obtiens une erreur "application win32 non valide".

    Que faut-il faire de plus pour que le fichier soit utilisable ?

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    InputStream inputStream = App.class.getResourceAsStream("/fichier.exe");
    File fichier= new File("fichier.exe");
    FileWriter fw = new FileWriter(fichier);
    int octet = inputStream.read();
    while(octet != -1){
    	fw.write(octet);
    	octet = inputStream.read();
    }
    fw.flush();
    fw.close();
    fichier.createNewFile();
    execute("fichier.exe");
    Merci d'avance de votre aide.

  7. #7
    Expert éminent sénior
    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
    Points : 48 804
    Points
    48 804
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FileWriter fw = new FileWriter(fichier);
    Ca, c'est pour écrire un fichier texte. Pas un fichier binaire.

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 19
    Points : 13
    Points
    13
    Par défaut
    Hm d'accord. Comment fait-on alors ?

    Désolé ^^. J'ai cherché un peu et j'ai trouvé. Merci de m'avoir mis sur la piste .

    Il faut utiliser un DataOutputStream et non un FileWriter.


    Comment puis-je faire maintenant pour que le fichier exécutable créé pendant l'exécution du programme, soit invisible pour l'utilisateur ? Le seul moyen que je vois est de le placer dans un répertoire où il n'aura pas idée d'aller.

  9. #9
    Expert éminent sénior
    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
    Points : 48 804
    Points
    48 804
    Par défaut
    Citation Envoyé par Maximaxou Voir le message
    Hm d'accord. Comment fait-on alors ?

    Désolé ^^. J'ai cherché un peu et j'ai trouvé. Merci de m'avoir mis sur la piste .

    Il faut utiliser un DataOutputStream et non un FileWriter.
    FileOutputStream, Dataoutputstream, ça sert à autre chose et ça peut changer l'ordre des bits!

    Comment puis-je faire maintenant pour que le fichier exécutable créé pendant l'exécution du programme, soit invisible pour l'utilisateur ?
    Peut pas.

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 19
    Points : 13
    Points
    13
    Par défaut
    Très bien. Merci

Discussions similaires

  1. Inclusion d'un fichier properties dans un jar avec la commande jar
    Par Lolitaaa dans le forum Général Java
    Réponses: 3
    Dernier message: 15/12/2009, 14h17
  2. Comment intégrer un fichier wave dans une Jar exécutable?
    Par HNoury dans le forum Général Java
    Réponses: 7
    Dernier message: 22/08/2008, 22h52
  3. fichier xml dans un jar executable
    Par docv266 dans le forum Langage
    Réponses: 5
    Dernier message: 06/08/2007, 18h13
  4. [JAR] Comment écrire dans un fichier properties dans un jar
    Par Alec6 dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 05/10/2004, 15h16
  5. Comment generer un fichier war dans java
    Par relivio dans le forum ANT
    Réponses: 4
    Dernier message: 12/03/2004, 13h43

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