首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Java - ClassNotFoundException我包含了这个类,但是为什么我会得到一个异常?

Java - ClassNotFoundException我包含了这个类,但是为什么我会得到一个异常?
EN

Stack Overflow用户
提问于 2010-03-12 05:01:24
回答 3查看 3.2K关注 0票数 3
代码语言:javascript
复制
public static Reservation[] openBinaryFile( String fileName )
{
    Reservation [] objArray = null;

    try
    { 
        ObjectInputStream inStream = new ObjectInputStream(
            new FileInputStream( fileName ) );

        objArray = (Reservation[])inStream.readObject();

        inStream.close();
    }
    catch( ClassNotFoundException e )
    {
        System.out.println( "Exception: ClassNotFoundException." );
    }

我已经包含了这个类,但是为什么我会得到一个异常?这个类和其他类在同一个包中。为什么我会得到这个异常?

编辑:这是堆栈跟踪运行: java.net.URLClassLoader$1.run(URLClassLoader.java:200) at java.security.AccessController.doPrivileged(Native方法的保留) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:252)的java.lang.ClassNotFoundException在java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) at java.lang.Class.forName0(本机方法) at java.lang.Class.forName(Class.java:247) at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:604) at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1575) at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496) at java.io.ObjectInputStreamjava.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351) at myViewer.DatabaseFile.openBinaryFile(DatabaseFile.java:42) at myViewer.Viewer的.readArray(ObjectInputStream.java:1624)。(Viewer.java:175) at myViewer.Viewer.main(Viewer.java:188)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-03-12 05:05:27

两件事:

  • 确保您正在实际读取Reservation[]
    • 如果您正在读取Reservation的子类型(例如,VIPReservation),则需要该type

的二进制文件

确保与Reservation的版本完全相同的

立即可操作:

  • 诊断堆栈跟踪。

查看堆栈跟踪,它希望Reservation位于默认包中。确保情况就是这样。

票数 1
EN

Stack Overflow用户

发布于 2010-03-12 05:04:16

有问题的类文件与最初序列化实例的类文件的版本不同。将其对齐,或者为它们提供相同的serialVersionUID

票数 0
EN

Stack Overflow用户

发布于 2010-03-12 05:05:18

到底是什么给了你这个例外?e.printStackTrace()会告诉你的。也许你没有import java.io.ObjectInputStream

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2428636

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档