Java Netbeans ClassNotFoundException

Java Netbeans ClassNotFoundException,java,netbeans,Java,Netbeans,我看到了关于这个话题的各种帖子,但它们对我没有帮助。我删除了我的Netbeans缓存,但未检查保存时编译。我只是尝试加载一个.dat文件并使用其中序列化的数据。它在JavaEditor中工作得很好,但我在Netbeans中得到了错误java.lang.ClassNotFoundException:Example 我用来加载.dat的代码: public static void load(){ ArrayList<Example> ex = new ArrayList<

我看到了关于这个话题的各种帖子,但它们对我没有帮助。我删除了我的Netbeans缓存,但未检查保存时编译。我只是尝试加载一个.dat文件并使用其中序列化的数据。它在JavaEditor中工作得很好,但我在Netbeans中得到了错误
java.lang.ClassNotFoundException:Example

我用来加载.dat的代码:

  public static void load(){
    ArrayList<Example> ex = new ArrayList<Example>();

    FileInputStream fis;
    ObjectInputStream ois;
    try{
      fis = new FileInputStream("ExampleList.dat");
      ois = new ObjectInputStream (fis);
      while (fis.available()>0){
        Example exam = (Example)ois.readObject();
        ex.add(exam);
      }
      ois.close();
      fis.close();

    } catch (Exception e){
      System.out.println(e);
    }   

在main方法中执行一些操作,如
Example ex=new Example()工作得非常好,因此netbeans应该已经找到了类

这是一个
类版本兼容性问题
问题,这是因为您在尝试反序列化的序列化对象之后对类进行了更改,因此新生成的
serialVersionUID
不等于上一个

因此,您必须声明
静态长SerialVersionId
,这样您就可以安全地对类进行更改

还要检查堆栈溢出


希望对您有所帮助。

显示完整的堆栈跟踪和导入的完整代码,我所做的唯一更改是将其添加到包中。。我甚至没有添加属性之类的东西。是否可以像以前一样更改并继续使用此.dat,或者我实际上必须创建一个新的?检查java文档第5.6.1节不兼容的更改:第2点:“在层次结构中向上或向下移动类-这是不允许的,因为流中的数据以错误的顺序出现。”
package ExampleTest;
import java.io.*;
public class Example implements Serializable{
 private String name;

public Example(){
}

//Getter and Setter

}