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

Eclipse Java Discussion :

[JAR] Problème à l'exportation d'un jar


Sujet :

Eclipse Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2003
    Messages : 32
    Par défaut [JAR] Problème à l'exportation d'un jar
    Bonjour à tous !
    J'ai un petit problème que je n'arrive pas à résoudre.
    J'ai développé une application via Eclipse. Elle est fonctionnelle quand je la teste via Eclipse (debug/run).
    Mais quand je l'exporte en jar, elle ne démarre plus du tout !!

    Le problème vient de là:
    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
    44
    45
    46
    public class JukeBox {
    	private File[] midis;
     
    	private AudioClip midi = null;
     
    	public JukeBox(URL dirname) {
    		File dir = new File(dirname.getPath());
    		if (dir.isDirectory()) {
    			midis = dir.listFiles();
    		} else
    			throw new Error("Wrong directory " + dirname.getPath());
    	}
     
    	public void loadMusic() {
    		Random rdm = new Random();
    		URL url = null;
    		try {
    			url = midis[rdm.nextInt(midis.length)].toURL();
    		} catch (MalformedURLException e) {
    			System.err.println(e.getLocalizedMessage());
    		}
    		if (midi != null)
    			midi.stop();
    		midi = Applet.newAudioClip(url);
    	}
     
    	public void play() {
    		loadMusic();
    		midi.play();
    	}
     
    	public void playLoop() {
    		loadMusic();
    		midi.loop();
    	}
     
    	public void stop() {
    		midi.stop();
    	}
     
    	public void change() {
    		stop();
    		loadMusic();
    		play();
    	}
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    //main
    private JukeBox juke;
    this.juke = new JukeBox(getClass().getResource("midis"));
    Via Eclipse, le répertoire midis est correctement chargé.
    En jar, j'obtiens l'erreur "Wrong Directory"

    Comment corriger ça ?

    Pour infos, mon répertoire midis se trouve dans un sous dossier par rapports aux sources (/tmind/src/midis)

    Deuxième petit problème, qui n'a rien à voir avec le premier :
    Il y a moyen d'afficher le titre des colonnes dans une JTable ?

    Merci !

  2. #2
    Expert éminent
    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
    Billets dans le blog
    1
    Par défaut Re: [JAR] Problème à l'exportation d'un jar
    Salut,

    Citation Envoyé par Mimi Bulles
    Via Eclipse, le répertoire midis est correctement chargé.
    En jar, j'obtiens l'erreur "Wrong Directory"
    Dans eclipse getResource() te renvoit une URL du style file://chemin_vers_ton_projet/.../midis, et donc tu crée un objet File qui pointe vers ton répertoire.

    Une fois en Jar, comme ton répertoire est à l'intérieur du jar, tu recois une URL du style jar:file://chemin_vers_ton_jat/file.jar!/.../midis et du coups ton objet File ne peux pas représenter ton répertoire.

    File ne permet que de représentaer des fichier ou répertoire sur le système de fichier, mais en aucun cas des fichiers à l'intérieur archives...

    Donc, soit tu sors tes fichiers midis du jar, exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    /tonfichier.jar
    /resources/midis/ + tes fichiers
    En spécifiant ceci dans le Manifest de jar, tu devrais pouvoir retrouver tes fichiers :
    Puis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.juke = new JukeBox(getClass().getResource("/midis"));
    (le / est important car le répertoirem idis n'est plus dans le même répertoire que les sources).

    Dans eclipse tu peux faire la même chose en créant un répertoire 'resources' et en l'ajioutant en tant que "Source Path"...




    Sinon l'autre solution est d'utiliser JarFile pour parcourir les différents fichiers du jar à la main....



    Citation Envoyé par Mimi Bulles
    Deuxième petit problème, qui n'a rien à voir avec le premier :
    Il y a moyen d'afficher le titre des colonnes dans une JTable ?
    Pris en flagrant délit de non-lecture de l'API
    L'entête est affiché automatiquement si la JTable est dans un JScrollPane, sinon il faut utiliser getTableHeader() :
    Citation Envoyé par [url=http://javasearch.developpez.com/j2se/1.4.2/docs/api/javax/swing/JTable.html
    JTable[/url]]Note that if you wish to use a JTable in a standalone view (outside of a JScrollPane) and want the header displayed, you can get it using getTableHeader() and display it separately.
    a++

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2003
    Messages : 32
    Par défaut
    Merci, seulement je débute en Java, donc je n'ai pas trop compris
    J'ai créé via Eclipse un nouveau "Source Folder" et j'y ai placé mon répertoire midis.

    Sous Eclipse, ça marche toujours, après modification du chemin.
    J'exporte en jar, je place mon répertoire resources à côté du jar, et j'essaie...

    Ca ne marche pas . Apparemment le répertoire est reconnu, puisqu'il ne me sort pas l'erreur "Wrong Directory", mais une erreur de type NullPointerException, sur cette ligne

    File dir = new File(dirname.getPath());
    J'ai raté une étape ?

    Par ailleurs, pour la JTable, je ne comprends pas trop comment utiliser getTableHeader(). tu sais m'expliquer, stp ?

    Dernière chôse : il existe, par hasard, un layout genre Vertical Flow Layout ? j'ai construit mon application avec un BoxLayout (Y_AXIS), mais ça redimensionne automatiquement les panels à l'intérieur, et ça fait pas beau... .Je ne peux pas utiliser GridLayout, puisque je ne connais pas à l'avance le nombre de panels à ajouter.

    Merci, et pardon de te déranger avec mes questions idotes

  4. #4
    Expert éminent
    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
    Billets dans le blog
    1
    Par défaut
    Il faut spécifier cela dans le fichier Manifest de ton jar :
    Avec eclipse tu génére un jar en lui demandant de sauvegarder le Manifest (je ne me souviens plus de l'option exacte). Tu modifies ensuite ce fichier pour rajouter la ligne ci-dessus et tu regénère le Jar en lui spécifiant le fichier manifest que tu as modifiés.

    Cela indiquera à Java que le répertoire resources fait partie du CLASSPATH de l'application...

    a++

    PS : il faut peut-être rajouté un / à la fin de resources pour bien spécifier qu'il s'agit d'un répertoire...

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2003
    Messages : 32
    Par défaut
    Je suis vraiment désolée de t'embêter avec ça
    J'avais déjà fait la plupart des étapes que tu as décrites, mais le problème ne change pas.

    si je met "resources/" dans le class-path, j'obtiens à nouveau l'erreur "Wrong Directory",mais en m'indiquant le path correct du répertoire "midis" !

    Et si je mets "resources", j'obtiens une erreur de pointeur

    Au pire, je peux coder en dur le chemin vers chaque fichier midi, mais je voudrais pas en arriver là

Discussions similaires

  1. Export Running Jar, problème d'export des images
    Par theboss25 dans le forum Interfaces Graphiques en Java
    Réponses: 1
    Dernier message: 02/11/2014, 16h28
  2. Problème d'exportation d'un jar
    Par junior222 dans le forum Interfaces Graphiques en Java
    Réponses: 17
    Dernier message: 26/05/2014, 12h21
  3. [JAR][Export] Problème d'export dans un JAR
    Par arkhamon1 dans le forum Eclipse Java
    Réponses: 0
    Dernier message: 03/04/2011, 19h07
  4. Réponses: 6
    Dernier message: 17/04/2005, 11h58
  5. Problème d'exportation jar : où est mon répertoire bin ?
    Par fredcontin dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 25/05/2004, 17h57

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