最近,我们的项目必须重新设计。但是当我使用JAVA的界面Serializable时,我花了很多时间。
现在,有两个程序:A和B.
但它不起作用。在日志信息中,我发现, A和B中的C类必须具有相同的目录。也就是说,当我将C放入A时使用包dir“com.hello.src .a“,在B with package dir”com.world.src.b“中,B程序将抛出一个ClassNotFoundException,因为B的JVM使用dir”com.hello.src.a“找到C!
当我使用相同的包dir将C放入A和B时,它可以工作。我想知道如果有更好的方法来解决这个问题。当我反序列化时,我将B程序中的包dir特定为C类(就像我告诉B的JVM使用包dir“com.world.src.b”找到C)
答案 0 :(得分:1)
将类从一个包复制到另一个包是完全没有意义的,并且是导致这样的问题的原因。确定您希望将课程C
放在哪个包中并将其保留在那里,在原处使用它。