クラスGhostを正常にシリアル化しました。
class Ghost {}
File file = new File("serialized.class.bin");
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(file));
oos.writeObject(Ghost.class);
次に、別のアプリケーションで復元しようとしています。
InputStream is = new FileInputStream(new File("serialized.class.bin"));
ObjectInputStream ois = new ObjectInputStream(is);
Object o = ois.readObject();
そして、ロード中にクラスが見落とされるというエラーが発生します。
java.lang.ClassNotFoundException: Ghost
Ghost.class
クラスの逆シリアル化中にファイルにアクセスできない場合があります。そのような方法でJavaクラスを転送することは可能ですか?
UPD。クラスのシリアル化中にクラス定義(バイトコード)がダンプされていると仮定しました。私は間違っていた。ただし、 getResourceAsStream()を介して目標に到達できます。