Se state scrivendo il MANIFEST.MF per il vostro file .jar ricordatevi di aggiungere SEMPRE una nuova linea alla fine o la API Java non leggerà l'ultima chiave presente nel file.
Esempio, se avete questo nel file
CODICE
Manifest-Version: 1.0
Module-Class: com.module.SimpleModule
la classe
Manifest conterrà soltando l'attributo
Manifest-Version mentre con
CODICE
Manifest-Version: 1.0
Module-Class: com.module.SimpleModule
<spazio>
il vostro file sarà letto correttamente.
Esempio codice
CODICE
for (File file : files) {
JarFile jarFile = null;
try {
jarFile = new JarFile(file);
Manifest manifest = jarFile.getManifest();
if (manifest == null) {
continue;
}
clazzes.add(manifest.getMainAttributes().getValue("Module-Class"));
urls.add(file.toURI().toURL());
} catch (IOException e) {
/* log exception */
} finally {
try {
jarFile.close();
} catch (IOException ignored) { }
}
}
il consiglio è di inserire
due spazi alla fine del file, esempio:
CODICE
Manifest-Version: 1.0
Module-Class: com.module.SimpleModule
<spazio>
<spazio>
Personalmente ho deciso di scrivere questo post come promemoria in caso mi succeda di nuovo in futuro. (p.s questo bug è abbastanza strano, ma non mi sono informato molto online quindi...)
p.s <spazio> corrisponde ad una linea vuota, forumfree rimuove gli spazi in automatico.Edited by .ReVo. - 13/10/2014, 21:29