2014-10-19 98 views
-1

在另一台计算机上打开我的项目并登录屏幕后出现此错误。 我在桌面计算机中包含了我用来创建这个的所有库,它工作正常。 我无法找到错误并修复它当在另一台计算机上运行应用程序时发生InvalidClassException

这是从线180至185码,错误引用:

CB_vendor(javax.swing.JComboBox)java.beans.Beans.instantiate(getClass().getClassLoader(), "newproject.NewJFrame_CB_vendor"); 
} catch (ClassNotFoundException e) { 
    e.printStackTrace(); 
} catch (java.io.IOException e) { 
    e.printStackTrace(); 
} ## 

我导入到我的NetBeans项目后,我在正常运行方法:project ---right click -----run

完整的错误:

java.io.InvalidClassException: javax.swing.JComboBox; local class incompatible: stream classdesc serialVersionUID = -1692960661481242205, local class serialVersionUID = 8351908727136020938 
    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.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 newproject.NewJFrame.initComponents(NewJFrame.java:180) 
    at newproject.NewJFrame.<init>(NewJFrame.java:48) 
    at newproject.logIn.jButton1ActionPerformed(logIn.java:241) 
    at newproject.logIn.access$300(logIn.java:26) 
    at newproject.logIn$4.actionPerformed(logIn.java:118) 
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022) 
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2346) 
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) 
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) 
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252) 
    at java.awt.Component.processMouseEvent(Component.java:6525) 
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3321) 
    at java.awt.Component.processEvent(Component.java:6290) 
    at java.awt.Container.processEvent(Container.java:2234) 
    at java.awt.Component.dispatchEventImpl(Component.java:4881) 
    at java.awt.Container.dispatchEventImpl(Container.java:2292) 
    at java.awt.Component.dispatchEvent(Component.java:4703) 
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4898) 
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4533) 
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4462) 
    at java.awt.Container.dispatchEventImpl(Container.java:2278) 
    at java.awt.Window.dispatchEventImpl(Window.java:2739) 
    at java.awt.Component.dispatchEvent(Component.java:4703) 
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:746) 
    at java.awt.EventQueue.access$400(EventQueue.java:97) 
    at java.awt.EventQueue$3.run(EventQueue.java:697) 
    at java.awt.EventQueue$3.run(EventQueue.java:691) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75) 
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86) 
    at java.awt.EventQueue$4.run(EventQueue.java:719) 
    at java.awt.EventQueue$4.run(EventQueue.java:717) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75) 
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:716) 
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) 
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) 
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) 
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) 
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) 
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82) 
java.io.InvalidClassException: javax.swing.JComboBox; local class incompatible: stream classdesc serialVersionUID = -1692960661481242205, local class serialVersionUID = 8351908727136020938 
    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.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 newproject.NewJFrame.initComponents(NewJFrame.java:209) 
    at newproject.NewJFrame.<init>(NewJFrame.java:48) 
    at newproject.logIn.jButton1ActionPerformed(logIn.java:241) 
    at newproject.logIn.access$300(logIn.java:26) 
    at newproject.logIn$4.actionPerformed(logIn.java:118) 
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022) 
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2346) 
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) 
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) 
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252) 
    at java.awt.Component.processMouseEvent(Component.java:6525) 
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3321) 
    at java.awt.Component.processEvent(Component.java:6290) 
    at java.awt.Container.processEvent(Container.java:2234) 
    at java.awt.Component.dispatchEventImpl(Component.java:4881) 
    at java.awt.Container.dispatchEventImpl(Container.java:2292) 
    at java.awt.Component.dispatchEvent(Component.java:4703) 
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4898) 
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4533) 
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4462) 
    at java.awt.Container.dispatchEventImpl(Container.java:2278) 
    at java.awt.Window.dispatchEventImpl(Window.java:2739) 
    at java.awt.Component.dispatchEvent(Component.java:4703) 
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:746) 
    at java.awt.EventQueue.access$400(EventQueue.java:97) 
    at java.awt.EventQueue$3.run(EventQueue.java:697) 
    at java.awt.EventQueue$3.run(EventQueue.java:691) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75) 
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86) 
    at java.awt.EventQueue$4.run(EventQueue.java:719) 
    at java.awt.EventQueue$4.run(EventQueue.java:717) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75) 
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:716) 
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) 
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) 
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) 
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) 
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) 
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82) 
BUILD SUCCESSFUL (total time: 27 seconds) 
+0

NewJFrame类的第180行发生了什么:'NewJFrame.java:180'?异常消息告诉你这是你的问题的位置。 – 2014-10-19 04:23:37

+2

您应该避免在注释中发布代码,因为它丢失了格式,而是将其作为[编辑原始问题](http://stackoverflow.com/posts/26447262/edit)发布。告诉我们你是如何试图运行你的程序的。你是否将它作为jar文件运行? – 2014-10-19 04:34:42

回答

4

看起来你已经系列化的JComboBox但serialVersionUID的不MATC h在运行时知道的类和被序列化的类之间。如果您看看Javadoc for the Serializable interface,它将解释如何使用该字段确保序列化版本和JVM想要从序列化对象创建的内容相同。由于该类是Java标准库的一部分,因此我建议您运行在一个JVM版本上序列化JComboBox的代码,并试图在另一个JVM版本上反序列化它。

作为一个附注,很少适合像JComboBox那样序列化UI元素。通常你想要序列化数据,而不是显示数据的东西(所以你保存JComboBox的状态 - 选择什么 - 然后将它恢复到新的JComboBox中)。这样你就不会遇到这样的问题。

+1

thnx这是我修复它的错误再次感谢 – 2014-10-19 06:11:24

3

您已经在JRE版本中序列化了一个JComboBox。来自Javadoc

Warning: Serialized objects of this class will not be compatible with future Swing releases. The current serialization support is appropriate for short term storage or RMI between applications running the same version of Swing.

相关问题