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

Collection et Stream Java Discussion :

créer un jar avec la classe jar


Sujet :

Collection et Stream Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    213
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 213
    Par défaut créer un jar avec la classe jar
    Bonjour,
    Afin de réaliser une application, j'ai besoin de créer un jar executable avec les librairies util.jar et util.zip.
    Avant tout voici le code:

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    import java.io.*;
    import java.util.jar.*;
    import java.util.zip.*;
     
    public class test {
     
    	/**
             * @param args
             */
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		try {
    		BufferedOutputStream writer = new BufferedOutputStream(new FileOutputStream(new File("test.jar")));
    		JarEntry ze = new JarEntry("/MANIFEST.MF");
     
    		JarOutputStream jar_writer = new JarOutputStream(writer);
    		jar_writer.putNextEntry(ze);
    		FileInputStream reader = new FileInputStream(new File("C:\\Program Files\\eclipse\\eclipse\\workSpace\\binder\\MANIFEST.MF"));
    		int nbreoctet = 0;
    		byte[] tab = new byte[1024];
    		while((nbreoctet = reader.read(tab)) != -1) {
    			jar_writer.write(tab, 0, nbreoctet);
    		}
    		jar_writer.flush();
     
     
    		ze = new JarEntry("/class_main");
    		jar_writer.putNextEntry(ze);
    		reader = new FileInputStream(new File("C:\\Program Files\\eclipse\\eclipse\\workSpace\\binder\\bin\\class_main.class"));
    		nbreoctet = 0;
    		tab = new byte[1024];
    		while((nbreoctet = reader.read(tab)) != -1) {
    			jar_writer.write(tab, 0, nbreoctet);
    		}
     
    		jar_writer.flush();
    		System.out.println("terminé");
     
    		jar_writer.close();
    		}catch(Exception e) { e.printStackTrace(); }
    		}
     
    }
    le manifest

    Manifest-Version: 1.0
    Main-Class: class_main
    Le fichier test.jar est bien créé, cependant, lorsque je tente de l'ouvrir il me met qu'il est invalide ou corrompu.
    Quelqu'un sait il d'où vient mon erreur?

    Merci d'avance

  2. #2
    Membre Expert
    Avatar de Patriarch24
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2003
    Messages
    1 047
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 047
    Par défaut
    Main-Class: class_main
    C'est pas plutôt "test" ta classe principale ?
    Par ailleurs, la convention généralement utilisée en Java indique d'utiliser des majuscules pour les noms de classe

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    213
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 213
    Par défaut
    Non justement, c'est une autre classe que j'ai faite que je veux mettre en jar, et me servir de celle là pour ce faire.

    Dans le manifest il faut les mettre en maj?

    Merci de ton aide

  4. #4
    Membre Expert
    Avatar de Patriarch24
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2003
    Messages
    1 047
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 047
    Par défaut
    Non, tu mets exactement le même nom de classe, package compris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Main-Class: mon.package.MainClass

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    213
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 213
    Par défaut
    Ok merci, mais je n'utilise pas de nom de package en particulier, je laisse par défaut, que faudrait il que je mette?

  6. #6
    Membre Expert
    Avatar de Patriarch24
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2003
    Messages
    1 047
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 047
    Par défaut
    Peux-tu montrer l'arborescence de ton jar stp ?

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    213
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 213
    Par défaut
    L'arborescence de mon jar?
    Alors sous eclipse:
    binder src (default_package)
    Et sous windows:
    C:\\Program Files\\eclipse\\eclipse\\workSpace\\binder\\
    comme ecrit dans le code
    merci de ton aide

  8. #8
    Membre Expert
    Avatar de Patriarch24
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2003
    Messages
    1 047
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 047
    Par défaut
    il me met qu'il est invalide ou corrompu.
    Arrives-tu à ouvrir le jar avec un outil zip/unzip ? (Un jar n'est rien de plus qu'un zip).
    Si tu y arrives, faudrait que tu me dises ce qu'il y a dedans.

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    213
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 213
    Par défaut
    J'y arrive effectivement, dedans je trouve:
    /MANIFEST.MF
    /class_main

    Merci de ta patience et de ton aide

  10. #10
    Membre Expert
    Avatar de Patriarch24
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2003
    Messages
    1 047
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 047
    Par défaut
    Le fichier MANIFEST.MF doit se trouver dans un répertoire nommé META-INF.

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    213
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 213
    Par défaut
    alors j'ai changé l'instruction du jarentry, et j'ai donc mis ceci à la place:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    JarEntry je = new JarEntry("META-INF/MANIFEST.MF");
    Lorsque j'ouvre mon fichier en zip j'botiens donc:
    /class_main
    META-INF\/MANIFEST.MF

    Peut être est ce dû à un problème de slash?
    Car le jar reste toujours corrompu et impossible à ouvrir

    Merci de ton aide

  12. #12
    Membre Expert
    Avatar de Patriarch24
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2003
    Messages
    1 047
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 047
    Par défaut
    Juste une question : pourquoi ne pas utiliser directement l'outil jar ? As-tu besoin de créer le jar dans ton code ?

    SI tel est le cas, ceci devrait t'aider.

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    213
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 213
    Par défaut
    Merci beaucoup pour le lien, ça va bien m'aider, je pense que mon problème venait du manifest

    Encore merci, je vous tiens au courant

  14. #14
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 156
    Par défaut
    Il manquerais pas un .class au bout du nom de fichier class_main ?

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, 15h17
  2. Réponses: 3
    Dernier message: 10/02/2009, 19h50
  3. Exporter le .jar avec les classes .java
    Par womannosky dans le forum NetBeans
    Réponses: 2
    Dernier message: 27/01/2009, 23h27
  4. [Eclipse] [VE] Créer des menus avec les classes SWT de VE
    Par jbcorens dans le forum SWT/JFace
    Réponses: 3
    Dernier message: 30/08/2005, 13h25
  5. [JAR]Création d'un JAR avec des dependances sous Eclipse
    Par muthnik dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 05/07/2005, 18h39

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