我在JBuilder IDE中开发的java swing项目。现在我需要将项目转移到NetBeans。但是,当我这样做时,会抛出异常。
java.io.InvalidClassException: oracle.jdbc.rowset.OracleCachedRowSet; local class incompatible: stream classdesc serialVersionUID = 1184591038813385495, local class serialVersionUID = -6778266293933460977
at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:562)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1583)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
这是异常发生的地方
FileInputStream fileInputStream = new FileInputStream(filename);
ObjectInputStream istream = new ObjectInputStream(fileInputStream);
try{
crset = (OracleCachedRowSet) istream.readObject();
}
但是如果在Jbuilder中正常工作。我为项目使用了以下罐子
ocrs12.zip
ojdbc14.jar.zip
ORADriver.jar
classes12.jar
commons-collections-3.2.jar
commons-pool-1.5.2.jar
jcommon-1.0.8.jar
jfreechart-1.0.4.jar
xerces.jar
有人可以帮我解决这个问题吗?
答案 0 :(得分:2)
当您尝试使用与序列化的类不同版本的对象反序列化对象时(即您加载了不同版本的oracle驱动程序),会引发错误。
知道OracleCachedRowSet被序列化的原因(以及在哪里)?这似乎不太可取。