不同的java版本会创建不同的serialVersionUID吗?

不同的java版本会创建不同的serialVersionUID吗?,java,serialization,version,Java,Serialization,Version,我已经将java版本从1.6更新到1.8。当我尝试在weblogic(12c)中部署我的项目时,我发现了以下错误 java.io.InvalidClassException:org.springframework.beans.PropertyAccessException;本地类不兼容:流classdesc serialVersionUID=-5171479712008793097,本地类serialVersionUID=73608030659024264 我是否需要重新生成serialVers

我已经将java版本从1.6更新到1.8。当我尝试在weblogic(12c)中部署我的项目时,我发现了以下错误

java.io.InvalidClassException:org.springframework.beans.PropertyAccessException;本地类不兼容:流classdesc serialVersionUID=-5171479712008793097,本地类serialVersionUID=73608030659024264

我是否需要重新生成serialVersionUID,它是使用java版本1.6创建的

请帮忙

谢谢


是的,编译器版本很重要。Javadoc说(部分)

如果可序列化类没有显式声明serialVersionUID,则序列化运行时将根据该类的各个方面计算该类的默认serialVersionUID值,如Java(TM)对象序列化规范中所述。但是,强烈建议所有可序列化类显式声明serialVersionUID值,因为默认的serialVersionUID计算对类细节高度敏感,这些细节可能因编译器实现而异,因此在反序列化过程中可能会导致意外的
InvalidClassExceptions


然而,在实践中,如果这种情况真的发生,它将打破世界。我已经22年没见过它了。而且在任何情况下依赖于编译器,因此,不管用户JVM版本如何,相同编译.class文件的所有安装都会产生相同的
serialVersionUID