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(); }
}
} |
Partager