Bonjour à tous !
Je souhaite depuis un certain temps réaliser un projet qui serait entièrement déconnecter, la solution alors trouvé : enregistrer les données au format JSon !
J'utilise alors la bibliothèque GSon (de Google), qui me permet sans problème de lire et écrire des fichier .json. Malheureusement, après avoir généré le .jar de mon projet, un message d'erreur s'affiche :
Vous pensez sûrement comme moi à la première lecture : "Mais quel idiot, il n'utilise pas le bon chemin d'accès !". Et bien si, lorsque j'utilise une image répertorié dans "C:\wamp\www\RPG\build\classes\img\image.png", le chemin que Java va chercher ressemble à "C:\wamp\www\RPG\dist\RPG.jar!\img\image.png" et mon fichier JSon en question se trouve dans "C:\wamp\www\RPG\build\classes\json\Personnage.json" ! Je ne vois donc pas d'erreur la dessus...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 file:\C:\wamp\www\RPG\dist\RPG.jar!\json\Personnage.json (La syntaxe du nom de fichier, de répertoire ou de volume est incorrect).
Place au code !
J'utilise ce genre de classe pour accéder au fichier :
Code Java : 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 public class JDAO_Personnage { private JsonReader reader; private static GsonBuilder builder; private static Gson gson; private Personnage[] lesPersos; private String url = getClass().getResource("/json/Personnage.json").getPath(); static{ builder = new GsonBuilder(); gson = builder.create(); } public List<Personnage> getAllPersonnages() throws FileNotFoundException{ System.out.println(url); reader = new JsonReader(new FileReader(url)); lesPersos = gson.fromJson(reader, Personnage[].class); List<Personnage> listPersos = new ArrayList<Personnage>(); listPersos.addAll(Arrays.asList(lesPersos)); return listPersos; } }
(J'ai copié toute la classe afin que vous puissiez constater les attributs privés, j'espère que cela reste lisible...)
Comme vous pouvez le voir, j'utilise la méthode getClass().getResource() car on me l'a très "gentiment" conseillé sur StackOverflow (car ce site respire la bienveillance), si vous avez une idée ou besoin d'une précision, N'HÉSITEZ PAS et dites le moi. Je suis désespéré et prêt à me pendre au bout de mon câble ethernet.
A la revoyure !
Partager