CMD運行Intellij Idea編譯後的class文件操作

或許很多Java初學者都會用javac、java命令運行程序,運行過幾次後就轉向開發工具。我本人也是這樣,很久沒有用命令行去執行java文件瞭,現在都是用Eclipse、Intellij Idea等編譯工具直接編譯運行。

昨天開始學習《算法》,裡面很多代碼都用到瞭命令行重定向文件實現輸入輸出,所以昨天用命令去執行class文件時碰到瞭一個NoClassDeFoundError異常,網上說的也很雜,看得”一頭霧水”,其實還是基礎不好,搞清楚原理很多問題就迎刃而解瞭。

Idea編譯後java文件和class文件不在同一個目錄(後來發現和這沒關系)

重新建一些目錄測試

然後cmd進入當前目錄,javac編譯生成class文件,然後復制到out\com\test目錄

然後進入該目錄(模擬Idea目錄),java HelloWorld運行報錯

查瞭很多資料,發現隻要在包的上一層目錄(src)或者在任意目錄添加classpath都可以運行

方法一:

方法二:

終於成功運行瞭,可以愉快地玩代碼瞭…

知識點:

包是Java中為瞭解決命名沖突而設置的,一個程序寫瞭包和沒寫在JVM中是兩個東西,若沒寫,默認包,虛擬機會把所有的不寫包名的類規整在一起組成默認包,默認包時不需要註意文件包結構

補充:idea 項目編譯後沒有class文件

問題

idea項目突然無法運行,提示找不到某個類。查看瞭編譯輸出目錄out,發現沒有class文件。

嘗試解決

嘗試刪除out、重新導入項目、在gradle面板點擊刷新,都沒能解決問題。

問題解決

最後,點擊Build->Rebuild Project解決。不明原因,先做下記錄。

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。