Serialization InvalidClassException和序列化问题

Serialization InvalidClassException和序列化问题,serialization,ioexception,Serialization,Ioexception,所以我的讲师给了我一个练习来建立一个注册系统。 我的工作是测试程序。我的朋友给了我源代码,但我似乎无法让它运行,尽管我的一个朋友可以毫无问题地打开它 这是错误消息 java.io.InvalidClassException: javax.swing.JComponent; local class incompatible: stream classdesc serialVersionUID = -3424753864000836906, local class serialVersionUID

所以我的讲师给了我一个练习来建立一个注册系统。 我的工作是测试程序。我的朋友给了我源代码,但我似乎无法让它运行,尽管我的一个朋友可以毫无问题地打开它

这是错误消息

java.io.InvalidClassException: javax.swing.JComponent; local class incompatible: stream classdesc serialVersionUID = -3424753864000836906, local class serialVersionUID = 3742318830738515599
at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:621)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1623)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1518)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1623)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1518)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1623)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1518)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1774)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:371)
at java.beans.Beans.instantiate(Beans.java:199)
at java.beans.Beans.instantiate(Beans.java:80)
at gui.MainWindow.initComponents(MainWindow.java:208)
at gui.MainWindow.<init>(MainWindow.java:34)
at srs.Driver.main(Driver.java:17)

Exception in thread "main" java.lang.IllegalArgumentException: 
Component must be non-null
at javax.swing.GroupLayout$ComponentSpring.<init>(GroupLayout.java:2953)
at javax.swing.GroupLayout$ComponentSpring.<init>(GroupLayout.java:2933)
at javax.swing.GroupLayout$Group.addComponent(GroupLayout.java:1524)
at javax.swing.GroupLayout$ParallelGroup.addComponent(GroupLayout.java:2484)
at javax.swing.GroupLayout$ParallelGroup.addComponent(GroupLayout.java:2454)
at javax.swing.GroupLayout$Group.addComponent(GroupLayout.java:1505)
at javax.swing.GroupLayout$ParallelGroup.addComponent(GroupLayout.java:2476)
at gui.MainWindow.initComponents(MainWindow.java:1680)
at gui.MainWindow.<init>(MainWindow.java:34)
at srs.Driver.main(Driver.java:17)
java.io.InvalidClassException:javax.swing.JComponent;本地类不兼容:流classdesc serialVersionUID=-34247538684000836906,本地类serialVersionUID=3742318830738515599
位于java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:621)
位于java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1623)
位于java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1518)
位于java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1623)
位于java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1518)
位于java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1623)
位于java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1518)
位于java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1774)
位于java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
位于java.io.ObjectInputStream.readObject(ObjectInputStream.java:371)
实例化(beans.java:199)
实例化(beans.java:80)
位于gui.MainWindow.initComponents(MainWindow.java:208)
在gui.MainWindow。(MainWindow.java:34)
位于srs.Driver.main(Driver.java:17)
线程“main”java.lang.IllegalArgumentException中的异常:
组件必须是非空的
位于javax.swing.GroupLayout$ComponentSpring(GroupLayout.java:2953)
位于javax.swing.GroupLayout$ComponentSpring(GroupLayout.java:2933)
位于javax.swing.GroupLayout$Group.addComponent(GroupLayout.java:1524)
位于javax.swing.GroupLayout$ParallelGroup.addComponent(GroupLayout.java:2484)
位于javax.swing.GroupLayout$ParallelGroup.addComponent(GroupLayout.java:2454)
位于javax.swing.GroupLayout$Group.addComponent(GroupLayout.java:1505)
位于javax.swing.GroupLayout$ParallelGroup.addComponent(GroupLayout.java:2476)
位于gui.MainWindow.initComponents(MainWindow.java:1680)
在gui.MainWindow。(MainWindow.java:34)
位于srs.Driver.main(Driver.java:17)
Java结果:1

在其中一个包中,我有一个名为“MainWindow.java”和“MainWindow\u creditsField2.ser”的类。此软件包用于GUI目的

我假设错误与.ser文件有关。当我问我的朋友那个文件是什么时,他不知道那个文件是什么,说是 自动生成

当我点击最后3个错误时

  • 驱动程序告诉我行mainfowmainfown=newmainfown()
  • 主窗口告诉我行初始化组件()

我想这就是我能给你的所有线索了。问题在于序列化。这是一个链接,它被很好地描述了为什么会发生。仔细阅读以了解如何使用该字段来确保序列化版本和JVM希望从序列化对象创建的内容相同。

您运行的Java版本与您的朋友不同。