Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Java] lire un fichier dans un .jar

    9 mai 2007 à 0:03:15

    Bonjour (Bonsoir) à tous !

    J'ai un problème dans le cadre d'un projet Java qui conscerne l'accès en lecture d'un fichier (texte) dans un .jar.
    Après de nombreuses mais infructueuses recherches sur google, je me permet de vous le soumettre :

    InputStream is = this.getClass().getResourceAsStream("/map/");
    InputStreamReader isr = new InputStreamReader(is);
    String list = "";
    try{
        while(isr.ready()) {
            list += (char)isr.read();
        }
    }
    catch(IOException e) {System.err.println("[ERROR] PlayDialog : comboBox : IOException : "+e.getMessage());}
    String files[] = list.split("\n");
    for(int i = 0; i < files.length; i++) {
        if(files[i].length()>4) {
            if(files[i].substring(files[i].length()-4,files[i].length()).equals(".lcm")) {
                mapComboBox.addItem(files[i]);
            }
        }
    }


    Le but ici est donc de remplir mapComboBox qui est un JComboBox d'éléments qui sont les fichiers '.lcm' présents dans le dossier /maps/.
    Le problème, c'est que ca marche dans un appletViewer sous IDE (Eclipse), mais pas dans un jar (fût-il signé...).

    La stackTrace de la console me donne dans ce dernier cas un java.lang.NullPointerException conscernant is, l'InputStream.
    L'api de getResourceAsStream() indique qu'il renvoie null si la resource n'est pas trouvée.
    J'ai essayé diverses variantes venant du web mais jusq'ici sans succès, et j'avoue être à court d'idées...

    Quelqu'un aurait-il une solution ou une suggestion ?

    Merci d'avance.
    • Partager sur Facebook
    • Partager sur Twitter
      9 mai 2007 à 1:22:15

      essaie
      un truc du genre

      this.getClass().getClassLoader().getResourceAsStream("map/")
      • Partager sur Facebook
      • Partager sur Twitter
        9 mai 2007 à 1:40:30

        Merci de ta réponse rapide, mais malheureusement non ca ne marche pas :euh:
        Par contre j'ai pas mal avancé car l'InputStream n'est plus à null.
        Mais si je rajoute :

        System.out.println("liste : \n"+list);

        à la fin, la liste est désespérément vide... (contrairement à une exécution sous IDE, bien entendu...)
        • Partager sur Facebook
        • Partager sur Twitter

        [Java] lire un fichier dans un .jar

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown