Bonjour à tous,
Pour lire un fichier csv, j'utilise la librairie opencsv 2.3. Tout fonctionne très bien quand j'exécute mon code dans Eclipse. Je souhaite maintenant créer un jar exécutable, et là mes ennuis commencent.
J'ai déjà eu un problème avec les images sur des JButton que j'ai résolu de la façon suivante :
Maintenant je souhaiterais que la ligne suivante (qui marche très bien dans Eclipse), puisse être exécutée dans le jar :Code:
1
2
3
4
5 // Ancienne version (ne fonctionne pas dans le jar) this.setIcon(new ImageIcon("img/truc.png")); // Nouvelle version (fonctionne dans le jar) this.setIcon(new ImageIcon(ClassLoader.getSystemResource("img/truc.png")))
En regardant sur internet j'ai testé, sans succès, les deux solutions suivantes :Code:reader = new CSVReader(new FileReader("data/truc.csv"));
Dans le premier cas, cela fonctionne dans Eclipse mais pas en exécutant le .jar (NullPointerException).Code:
1
2
3
4
5
6
7
8 // Methode 1 - La même que celle utilisée pour les images reader = new CSVReader(new FileReader(ClassLoader.getSystemResource("data/truc.csv").getFile())); // Methode 2 - Utiliser un BufferedReader InputStream is = getClass().getResourceAsStream("data/truc.csv"); InputStreamReader isr = new InputStreamReader(is); BufferedReader buf = new BufferedReader(isr); reader = new CSVReader(buf);
Dans le deuxième cas, même dans Eclipse j'ai un NullPointerException (à la création de "isr").
Auriez-vous une petite idée pour me sortir de là ? Où est-ce que je me suis planté ?
Merci d'avance !
EDIT : Dans la méthode utilisant le BufferedReader, si je remplace "data/truc.csv" par "../data/truc.csv", cela fonctionne dans Eclipse mais pas dans le .jar