Bonjour,
Afin de protéger mon programme j'ai inclus une clé de protection sur celui-ci :
- Dans un projet, j'ai codé un générateur de clé, qui a partir de deux champs de texte génère un fichier binaire.
- Dans un autre projet, j'ai mon programme qui désérialise le fichier précédemment créé et compare les informations du fichier avec des informations codées en dur.
J'ai eu tout d'abord une exception ClassNotFound que j'ai réglé en incorporant le .ja du générateur dans le ClassPath du programme.
Mais maintenant j'ai une exception ClassCastException. En effet j'ai un code de sérialisation/désérialisation commun à plusieurs objets.
Voici le code qui génère l'exc :
Et le code de désérialisation :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 /** Deserialisation of the key **/ public KeyData loadKey() { return (KeyData) this.fm.deserial("nomfichier"); }
Le code de sérialisation/désérialisation, ainsi que la classe KeyData sont les mêmes dans les deux projets. J'imagine que le problème vient du fait que le fichier binaire est sérialisé par un programme et désérialisé par un autre, mais j'ai du mal à comprendre la logique interne du problème et surtout comment le résoudre?
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 public Object deserial(String nomDuFichier) { Object obj=null; try { FileInputStream fis=new FileInputStream(nomDuFichier); ObjectInputStream ois=new ObjectInputStream(fis); obj=ois.readObject(); ois.close(); } catch(ClassNotFoundException exc) { exc.printStackTrace(); } catch (IOException exc) { exc.printStackTrace(); } return obj; }
Merci d'avance.![]()
Partager