现有类的子类的Java ClassNotFoundException
我有一个服务器项目,其中我需要通过服务器将一个对象从一台计算机发送到另一台计算机。对象是一个特定的游戏,它扩展了游戏。服务器知道它接收到的对象属于Game类型,但无权访问SpecificGame或任何其他扩展Game的类。然后服务器将这个对象传递到另一台计算机上,一切正常
我有多个扩展游戏的类(我正在使用这个服务器开发的几个电脑游戏),我不断地修改和添加这些类,而不修改游戏本身
然而,最近,服务器为SpecificGame抛出ClassNotFoundException,即使SpecificGame扩展了服务器识别的游戏。如果我将服务器作为jar从eclipse中SpecificGame所在的同一项目文件夹中导出,它可以正常工作,但这意味着每次修改扩展游戏和服务器的内容时,我都必须导出jar并重新启动服务器
我一直在使用ObjectInputStream。readObject()方法在扩展游戏的类中读取,这引发了异常
请帮我找出原因
不幸的是,我不能在网上发布代码细节
谢谢
# 1 楼答案
当您将新类添加到通信的一端时,当然也需要将相同的类添加到通信的另一端。这意味着,您必须将这些类重新部署到服务器,并重新启动它
否则,就像您的情况一样,服务器从一些序列化的信息中获取重建
SpecificGame
对象的信息,但是在不知道SpecificGame
是什么的情况下,他应该如何做呢