problème pour créer un .jar
Bonjour, j'ai une application qui doit créer un nouveau jar avec des fichiers spécifiés par l'utilisateur.
Je récupère donc les chemins de ces 2 fichiers dans la forme:
C:\niania\fichier.txt
Je crée donc un FileInputStream vers chacun de ces fichiers, cependant il me met que le InputStream vaut null. Je ne vois pas d'où vient le problème, j'ai contrôlé les chemins dans un println, tout est est ok.
voici la méthode qui crée le jar:
Code:
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 47 48 49 50
| public void jar() { //méthode pour creer le jar
try {
Pattern p = Pattern.compile("\\\\");
String item1[] = p.split(chemin1);
String item2[] = p.split(chemin2);
String nom1 = item1[item1.length-1];
String nom2 = item2[item2.length-1];
File[] fichiers = new File[]{new File("/MANIFEST.MF"), new File("/class_main.class"), new File("/thread_extract.class"), new File(nom1), new File(nom2), new File("config.ini")};
FileOutputStream stream = new FileOutputStream("fichier_binder.jar");
InputStream reader;
JarOutputStream out = new JarOutputStream(stream);
JarEntry entry;
for(int i=0 ; i < fichiers.length ; i++) {
if(fichiers[i].getName().equals("MANIFEST.MF"))
entry = new JarEntry("META-INF/"+fichiers[i].getName()); //on le met dans le dossier META-INF
else
entry = new JarEntry(fichiers[i].getName());
out.putNextEntry(entry);
if(fichiers[i].getName().equals("config.ini")) //il n'est pas en ressource
reader = new FileInputStream(fichiers[i].getName());
else if(fichiers[i].equals(nom1))
reader = new FileInputStream(chemin1);
else if(fichiers[i].equals(nom2))
reader = new FileInputStream(chemin2);
else
reader = getClass().getResourceAsStream(fichiers[i].getName());
if(reader != null) {
byte[] tab = new byte[1024];
int nbreoctet = 0; //on prepare les variables pour la copie
while((nbreoctet = reader.read(tab)) != -1) {
out.write(tab, 0, nbreoctet);
}
out.flush();
reader.close();
jop.showMessageDialog(null, fichiers[i].getName()+" ajoute avec succès", "fichier ajoute", JOptionPane.INFORMATION_MESSAGE);
}
else {
jop.showMessageDialog(null, "le fichier "+fichiers[i].getName()+" est manquant", "fichier manquant", JOptionPane.ERROR_MESSAGE);
}
}
out.close();
stream.close();
}catch(Exception e) { e.printStackTrace(); }
}
} |
Là j'ai vraiment besoin de votre aide^^
Donc si quelqu'un voit d'où peu provenir le problème...
Merci d'avance