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。如有錯誤或未考慮完全的地方,望不吝賜教。
推薦閱讀:
- JAVA IDEA入門使用手冊(新手小白必備)
- 新手小白學JAVA IDEA下載使用手冊全集
- IntelliJ IDEA 2020常用配置設置大全(方便幹活)
- IntelliJ IDEA中Project與Module的概念以及區別
- idea之Recompile、Rebuild和Build之間的區別及說明