私は、あるコンピュータから別のコンピュータにサーバー経由でオブジェクトを送信する必要のあるサーバープロジェクトを持っています。オブジェクトはGameを拡張するSpecificGameです。サーバーは、受け取ったオブジェクトがGame型であることを知っていますが、SpecificGameやGameを継承する他のクラスにアクセスすることはできません。サーバーはこのオブジェクトを別のコンピュータに渡して、すべてうまくいきました。既存のクラスのサブクラスのJava ClassNotFoundException
ゲームを拡張する複数のクラスがあります(このサーバーを使用するいくつかのコンピュータゲーム)、ゲーム自体を変更することなく、これらのクラスを継続的に変更して追加しています。
しかし、最近、SpecificGameはサーバーが認識するGameを拡張しても、サーバーはSpecificGameに対してClassNotFoundExceptionをスローします。もし私がEclipseを特定ゲームと同じプロジェクトフォルダからjarファイルとしてエクスポートすると、正常に動作しますが、これは、jarファイルをエクスポートして、ゲームを拡張してサーバーを経由するものを変更するたびにサーバーを再起動する必要があることを意味します。
私はObjectInputStream.readObject()メソッドを使用して、ゲームを拡張するクラスを読み込みましたが、例外がスローされています。
原因を突き止めてください。
残念ながら、コードの詳細をオンラインで掲載することはできません。
ありがとうございます!
SpecificGameを読み込んだ後、どのようにキャストしていますか? '(ゲーム)ObjectInputStream.readObject()'または '(特定のゲーム)ObjectInputStream.readObject()'? – corpico
私は(Game)を使って、SpecificGameを含むあらゆるクラスを使用できるようにしました。これは、サーバーとGameを拡張します。 – Waiwera