java.lang.NoClassDefFoundError: HomeWork/Book (wrong name:解决方法

若将如下代码放入idea中会报出Exception in thread “main” java.lang.NoClassDefFoundError: HomeWork/Book (wrong name: HomeWork/BOOK)at java.lang.ClassLoader.defineClass1(Native Method)…错误

package HomeWork;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
//创建一个书籍对象,并把它输出到一个文件book.dat中,然后再把该对象读出来,在屏幕上显示对象信息
public class BOOK{
     
	@SuppressWarnings("serial")
	class Book implements Serializable {
     
			int id;
			String name;
			String author;
			float price;
			public Book(int id,String name,String author,float price) {
     
				this.id=id;
				this.name=name;
				this.author=author;
				this.price=price;
			}
		}
	public static void main(String args[]) throws                                          
                    IOException,ClassNotFoundException {
     
	    Book book=new Book(010313, "blackpink", "RanLuYao", 66);

	    ObjectOutputStream oos=new ObjectOutputStream(
                               new FileOutputStream("D:/book.dat"));       
        oos.writeObject(book);
	    oos.close(); 	
	    book=null;
	    ObjectInputStream ois=new ObjectInputStream(
	                            new FileInputStream("D:/book.dat"));    
         book=(Book)ois.readObject(); 
	     ois.close(); 
 	     System.out.println("ID is:"+book.id);  
	     System.out.println("name is:"+book.name);
	     System.out.println("author is:"+book.author);
	     System.out.println("price is:"+book.price);
	}
}

此时查阅资料发现是无法找到路径或classpath配置错误,但最终检查发现自己是.java文件包含了包层次所导致的问题。

解决方法:去掉包,并将文件分成两个.java文件放入两个类中,就可以运行出结果java.lang.NoClassDefFoundError: HomeWork/Book (wrong name:解决方法_第1张图片
若只是想要完成作业可以考虑这个方法,更深入的了解可以关注以下网址
文章地址:
https://blog.csdn.net/xw13106209/article/details/6861855?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.nonecase

你可能感兴趣的:(JavaSE,练习题,java)