Bonjour à tous,
alors je me lance dans l'apprentissage de Java à travers la création de plugins pour serveur minecraft Spigot.
Jusqu’à la tous allais bien j’avançais doucement mais je trouvais toujours solution dans la documentation JAVA et dans quelque petite recherche internet.
cependant je rencontre un problème dans la sauvegarde d'un fichier dans le qu'elle je stock une variable ArrayList (qui est bien sérialisable, oui j'ai vérifié).
Voici le code :
En gros quand démarre le serveur sa lance la methode save puis la méthode TestLocation que vous retrouver ci-après :
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
38
39
40 public class Main extends JavaPlugin { public ArrayList<Location> location = new ArrayList<Location>() ; @Override public void onEnable() { //texte de console démarrage plugins System.out.println( "location : " + (new Location(null, 700,500,210)).toString()); try { this.save("Test.tmp", new Location(null, 700,500,210)); } catch (FileNotFoundException e) { System.out.println("erreur6"); e.printStackTrace(); } catch (IOException e) { System.out.println("erreur7"); e.printStackTrace(); } System.out.println("la méthode renvoir : " + this.TestLocation("Test.tmp",new Location(null, 700,500,210))); }
cependant dans la console j'ai que des erreurs ...
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52 public void save(String fileName,Location location) throws IOException { System.out.println("1"); FileOutputStream fos = new FileOutputStream(fileName); ObjectOutputStream oos = new ObjectOutputStream(fos); this.location.clear(); try { this.location = this.load(fileName); } catch (ClassNotFoundException e) { System.out.println("erreur3"); e.printStackTrace(); } catch (IOException e) { System.out.println("erreur4"); e.printStackTrace(); } this.location.add(location); oos.writeObject(this.location); oos.close(); } public ArrayList<Location> load(String fileName) throws IOException, ClassNotFoundException { System.out.println("3"); FileInputStream fis = new FileInputStream("t.tmp"); ObjectInputStream ois = new ObjectInputStream(fis); location = (ArrayList<Location>)ois.readObject(); System.out.println("location"); ois.close(); return location; } public boolean TestLocation(String fileName,Location location){ this.location.clear(); try { this.location = this.load(fileName); } catch (ClassNotFoundException e) { System.out.println("eereur1"); e.printStackTrace(); } catch (IOException e) { System.out.println("erreur2"); e.printStackTrace(); } if(this.location.contains(location)) { return true; } return false; }
Pouvez vous m'aider a comprendre ses erreur et m'aider a les corrigés ? cela fais 2 jours que je cherche sans grande reussite.
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113 [01:24:53] [Server thread/INFO]: location : Location{world=null,x=700.0,y=500.0,z=210.0,pitch=0.0,yaw=0.0} [01:24:53] [Server thread/INFO]: 1 [01:24:53] [Server thread/INFO]: 3 [01:24:53] [Server thread/INFO]: erreur4 [01:24:53] [Server thread/WARN]: java.io.EOFException [01:24:53] [Server thread/WARN]: at java.io.ObjectInputStream$BlockDataInputStream.peekByte(Unknown Source) [01:24:53] [Server thread/WARN]: at java.io.ObjectInputStream.readObject0(Unknown Source) [01:24:53] [Server thread/WARN]: at java.io.ObjectInputStream.readObject(Unknown Source) [01:24:53] [Server thread/WARN]: at java.io.ObjectInputStream.readObject(Unknown Source) [01:24:53] [Server thread/WARN]: at fr.passepartout007.principal.Main.load(Main.java:103) [01:24:53] [Server thread/WARN]: at fr.passepartout007.principal.Main.save(Main.java:84) [01:24:53] [Server thread/WARN]: at fr.passepartout007.principal.Main.onEnable(Main.java:29) [01:24:53] [Server thread/WARN]: at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:263) [01:24:53] [Server thread/WARN]: at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:352) [01:24:53] [Server thread/WARN]: at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:417) [01:24:53] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_15_R1.CraftServer.enablePlugin(CraftServer.java:462) [01:24:53] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_15_R1.CraftServer.enablePlugins(CraftServer.java:376) [01:24:53] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_15_R1.CraftServer.reload(CraftServer.java:811) [01:24:53] [Server thread/WARN]: at org.bukkit.Bukkit.reload(Bukkit.java:576) [01:24:53] [Server thread/WARN]: at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:27) [01:24:53] [Server thread/WARN]: at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:149) [01:24:53] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_15_R1.CraftServer.dispatchCommand(CraftServer.java:711) [01:24:53] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_15_R1.CraftServer.dispatchServerCommand(CraftServer.java:696) [01:24:53] [Server thread/WARN]: at net.minecraft.server.v1_15_R1.DedicatedServer.handleCommandQueue(DedicatedServer.java:430) [01:24:53] [Server thread/WARN]: at net.minecraft.server.v1_15_R1.DedicatedServer.b(DedicatedServer.java:394) [01:24:53] [Server thread/WARN]: at net.minecraft.server.v1_15_R1.MinecraftServer.a(MinecraftServer.java:978) [01:24:53] [Server thread/WARN]: at net.minecraft.server.v1_15_R1.MinecraftServer.run(MinecraftServer.java:823) [01:24:53] [Server thread/WARN]: at java.lang.Thread.run(Unknown Source) [01:24:53] [Server thread/INFO]: erreur7 [01:24:53] [Server thread/WARN]: java.io.NotSerializableException: org.bukkit.Location [01:24:53] [Server thread/WARN]: at java.io.ObjectOutputStream.writeObject0(Unknown Source) [01:24:53] [Server thread/WARN]: at java.io.ObjectOutputStream.writeObject(Unknown Source) [01:24:53] [Server thread/WARN]: at java.util.ArrayList.writeObject(Unknown Source) [01:24:53] [Server thread/WARN]: at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [01:24:53] [Server thread/WARN]: at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) [01:24:53] [Server thread/WARN]: at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) [01:24:53] [Server thread/WARN]: at java.lang.reflect.Method.invoke(Unknown Source) [01:24:53] [Server thread/WARN]: at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source) [01:24:53] [Server thread/WARN]: at java.io.ObjectOutputStream.writeSerialData(Unknown Source) [01:24:53] [Server thread/WARN]: at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source) [01:24:53] [Server thread/WARN]: at java.io.ObjectOutputStream.writeObject0(Unknown Source) [01:24:53] [Server thread/WARN]: at java.io.ObjectOutputStream.writeObject(Unknown Source) [01:24:53] [Server thread/WARN]: at fr.passepartout007.principal.Main.save(Main.java:94) [01:24:53] [Server thread/WARN]: at fr.passepartout007.principal.Main.onEnable(Main.java:29) [01:24:53] [Server thread/WARN]: at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:263) [01:24:53] [Server thread/WARN]: at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:352) [01:24:53] [Server thread/WARN]: at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:417) [01:24:53] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_15_R1.CraftServer.enablePlugin(CraftServer.java:462) [01:24:53] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_15_R1.CraftServer.enablePlugins(CraftServer.java:376) [01:24:53] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_15_R1.CraftServer.reload(CraftServer.java:811) [01:24:53] [Server thread/WARN]: at org.bukkit.Bukkit.reload(Bukkit.java:576) [01:24:53] [Server thread/WARN]: at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:27) [01:24:53] [Server thread/WARN]: at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:149) [01:24:53] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_15_R1.CraftServer.dispatchCommand(CraftServer.java:711) [01:24:53] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_15_R1.CraftServer.dispatchServerCommand(CraftServer.java:696) [01:24:53] [Server thread/WARN]: at net.minecraft.server.v1_15_R1.DedicatedServer.handleCommandQueue(DedicatedServer.java:430) [01:24:53] [Server thread/WARN]: at net.minecraft.server.v1_15_R1.DedicatedServer.b(DedicatedServer.java:394) [01:24:53] [Server thread/WARN]: at net.minecraft.server.v1_15_R1.MinecraftServer.a(MinecraftServer.java:978) [01:24:53] [Server thread/WARN]: at net.minecraft.server.v1_15_R1.MinecraftServer.run(MinecraftServer.java:823) [01:24:53] [Server thread/WARN]: at java.lang.Thread.run(Unknown Source) [01:24:53] [Server thread/INFO]: 3 [01:24:53] [Server thread/INFO]: erreur2 [01:24:53] [Server thread/WARN]: java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: org.bukkit.Location [01:24:53] [Server thread/WARN]: at java.io.ObjectInputStream.readObject0(Unknown Source) [01:24:53] [Server thread/WARN]: at java.io.ObjectInputStream.readObject(Unknown Source) [01:24:53] [Server thread/WARN]: at java.io.ObjectInputStream.readObject(Unknown Source) [01:24:53] [Server thread/WARN]: at java.util.ArrayList.readObject(Unknown Source) [01:24:53] [Server thread/WARN]: at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [01:24:53] [Server thread/WARN]: at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) [01:24:53] [Server thread/WARN]: at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) [01:24:53] [Server thread/WARN]: at java.lang.reflect.Method.invoke(Unknown Source) [01:24:53] [Server thread/WARN]: at java.io.ObjectStreamClass.invokeReadObject(Unknown Source) [01:24:53] [Server thread/WARN]: at java.io.ObjectInputStream.readSerialData(Unknown Source) [01:24:53] [Server thread/WARN]: at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source) [01:24:53] [Server thread/WARN]: at java.io.ObjectInputStream.readObject0(Unknown Source) [01:24:53] [Server thread/WARN]: at java.io.ObjectInputStream.readObject(Unknown Source) [01:24:53] [Server thread/WARN]: at java.io.ObjectInputStream.readObject(Unknown Source) [01:24:53] [Server thread/WARN]: at fr.passepartout007.principal.Main.load(Main.java:103) [01:24:53] [Server thread/WARN]: at fr.passepartout007.principal.Main.TestLocation(Main.java:113) [01:24:53] [Server thread/WARN]: at fr.passepartout007.principal.Main.onEnable(Main.java:38) [01:24:53] [Server thread/WARN]: at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:263) [01:24:53] [Server thread/WARN]: at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:352) [01:24:53] [Server thread/WARN]: at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:417) [01:24:53] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_15_R1.CraftServer.enablePlugin(CraftServer.java:462) [01:24:53] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_15_R1.CraftServer.enablePlugins(CraftServer.java:376) [01:24:53] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_15_R1.CraftServer.reload(CraftServer.java:811) [01:24:53] [Server thread/WARN]: at org.bukkit.Bukkit.reload(Bukkit.java:576) [01:24:53] [Server thread/WARN]: at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:27) [01:24:53] [Server thread/WARN]: at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:149) [01:24:53] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_15_R1.CraftServer.dispatchCommand(CraftServer.java:711) [01:24:53] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_15_R1.CraftServer.dispatchServerCommand(CraftServer.java:696) [01:24:53] [Server thread/WARN]: at net.minecraft.server.v1_15_R1.DedicatedServer.handleCommandQueue(DedicatedServer.java:430) [01:24:53] [Server thread/WARN]: at net.minecraft.server.v1_15_R1.DedicatedServer.b(DedicatedServer.java:394) [01:24:53] [Server thread/WARN]: at net.minecraft.server.v1_15_R1.MinecraftServer.a(MinecraftServer.java:978) [01:24:53] [Server thread/WARN]: at net.minecraft.server.v1_15_R1.MinecraftServer.run(MinecraftServer.java:823) [01:24:53] [Server thread/WARN]: at java.lang.Thread.run(Unknown Source) [01:24:53] [Server thread/WARN]: Caused by: java.io.NotSerializableException: org.bukkit.Location [01:24:53] [Server thread/WARN]: at java.io.ObjectOutputStream.writeObject0(Unknown Source) [01:24:53] [Server thread/WARN]: at java.io.ObjectOutputStream.writeObject(Unknown Source) [01:24:53] [Server thread/WARN]: at java.util.ArrayList.writeObject(Unknown Source) [01:24:53] [Server thread/WARN]: at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [01:24:53] [Server thread/WARN]: at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) [01:24:53] [Server thread/WARN]: at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) [01:24:53] [Server thread/WARN]: at java.lang.reflect.Method.invoke(Unknown Source) [01:24:53] [Server thread/WARN]: at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source) [01:24:53] [Server thread/WARN]: at java.io.ObjectOutputStream.writeSerialData(Unknown Source) [01:24:53] [Server thread/WARN]: at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source) [01:24:53] [Server thread/WARN]: at java.io.ObjectOutputStream.writeObject0(Unknown Source) [01:24:53] [Server thread/WARN]: at java.io.ObjectOutputStream.writeObject(Unknown Source) [01:24:53] [Server thread/WARN]: at fr.passepartout007.principal.Main.save(Main.java:94) [01:24:53] [Server thread/WARN]: at fr.passepartout007.principal.Main.onEnable(Main.java:29) [01:24:53] [Server thread/WARN]: ... 16 more
Mon but final étant de sérialsié la variable location (qui est un ArrayList).
Merci pas avance si il y à des réponse.
Bien à vous,
Passepartout007
Partager