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文件放入兩個類中,就可以運行出結果在這裏插入圖片描述
若只是想要完成作業可以考慮這個方法,更深入的瞭解可以關注以下網址
文章地址:
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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章