Bonjour,
j'ai un fichier jar dans lequel j'ai un fichier d'information, à la base, j'avais un fichier xml, mais j'ai changé par un fichier sérialisé, ça me parait plus utile dans mon cas, vu que je stocke juste un objet.
le souci, c'est que lorsque je veux lire le fichier sérialisé, il m'affiche cela.
Je vous montre mon bout de code pour lire un fichier à partir d'un jar.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 java.io.EOFException at java.io.ObjectInputStream$PeekInputStream.readFully(Unknown Source) at java.io.ObjectInputStream$BlockDataInputStream.readUTFBody(Unknown Source) at java.io.ObjectInputStream$BlockDataInputStream.readUTF(Unknown Source) at java.io.ObjectInputStream.readUTF(Unknown Source) at java.io.ObjectStreamClass.readNonProxy(Unknown Source) at java.io.ObjectInputStream.readClassDescriptor(Unknown Source) at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source) at java.io.ObjectInputStream.readClassDesc(Unknown Source) at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source) at java.io.ObjectInputStream.readObject0(Unknown Source) at java.io.ObjectInputStream.readObject(Unknown Source) at version.FileVersion.loadVersion(FileVersion.java:77) at plugins.PluginsLoader.initLoader(PluginsLoader.java:188) at plugins.PluginFonction.loadDirectory(PluginFonction.java:72) at main.JFLAP.main(JFLAP.java:126)
En espérant que vous pourrez m'aider.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 //tmp ici est le nom du fichier URL url = new URL("jar:file:"+f[index].getCanonicalPath()+"!/"+tmp); InputStream is = url.openStream(); //on crée le fichier en local pour pouvoir désérialiser et récupérer les informations File fichier = this.fileFunctions.createFile(is,tmp); //instanciation d'une classe qui permet de sérialiser et de désérialiser FileVersion fileVer = new FileVersion(); fileVer.setFile(fichier); Version versionToLoad = fileVer.loadVersion(); /*----------- METHODE LOAD VERSION qui désérialise ***//////// ObjectInputStream in = null; try { try { in = new ObjectInputStream(new BufferedInputStream(new FileInputStream(dataFile))); } catch (FileNotFoundException e) {JOptionPane.showMessageDialog(null, "Fichier d'information de JFLAP non disponible", "Fichier d'information", JOptionPane.ERROR_MESSAGE); } catch (IOException e) {e.printStackTrace();} try { this.version = (Version) in.readObject(); } catch (IOException e) {e.printStackTrace();} catch (ClassNotFoundException e) {e.printStackTrace();} catch (NullPointerException e){} } finally { try { in.close(); } catch (IOException e) {e.printStackTrace();} catch (NullPointerException e){}; } return this.version;
il faut savoir que je réussi à sérialiser lors de l'ouverture du logiciel pour récupérer les informations du logiciel.
Mais là, comme le fichier d'information est inclu dans le .jar, je pense que ça vient de là, mais je n'arrive pas à résoudre le pb!!!!!!
merci
Partager