Windows cmd命令行運行Java 錯誤:找不到或無法加載主類

使用Windows自帶cdm窗口運行Java提示錯誤:

1.檢查當前進入的路徑下是否包含class文件

class文件是java虛擬機能識別的二進制文件,由java文件編譯生成。運行java程序時,“.java”後綴文件並不是必須的,只要有class文件就可以運行。一般通過IDE開發工具開發Java項目時,class和java文件會被分別生成到不同目錄,因此從cmd運行java程序時會找不到class文件,導致上述錯誤。因此可以將class文件和java文件拷貝到同一個目錄中。

2.檢查Java程序(“.java”後綴文件)代碼內容:

  • Java保存的文件名必須與類名一致;
  • 如果文件中只有一個類,文件名必須與類名一致;
  • 一個Java文件中只能有一個public類;
  • 如果文件中不止一個類,文件名必須與public類名一致;
  • 如果文件中不止一個類,而且沒有public類,文件名可與任一類名一致。

另外,通過java文件使用javac命令生成class文件時,class文件的文件名也將與java文件的文件名保持一致。

 3.檢查環境變量配置,具體可以百度如何配置環境變量,尤其是:

在classpath的最前面要加一個本目錄路徑,用”.“表示,如果後面還有其他路徑內容,則“.”要加“;”進行分隔表示。注意都是英文狀態下的字符。

這樣在運行java命令運行程序時,纔會在當前路徑下搜索到包含當前類的class文件。

4.打開cdm跳轉到class文件所在路徑後再運行

在cmd下運行javac 和java的時候,必須在該java文件的目錄下運行,這樣生成的class也在該目錄下,java的時候也會第一個就在本目錄下找class文件,就不會提示找不到了。進入cmd就會直接到c:\個人文件夾下,而一般的java文件會用其它軟件編寫,放在選定的路徑下,這兩個路徑很少能主動重合,因此需要注意。

5.運行命令

使用“javac(空格)文件名.java”命令編譯當前java文件,如果沒有報錯則會生成class文件,待生成class文件後,使用“java(空格)類名”的方式運行代碼。注意此處使用java命令時,後面不能帶有“.class”後綴或“.java”後綴,通過tab鍵是默認給加後綴的,運行前建議最先檢查下,如果加了需要把“.class”刪除。

6.關於路徑問題,如果java代碼中包含“包”的聲明,需要特別注意

爲了更好地組織類,Java 提供了包機制,用於區別類名的命名空間。

包語句的語法格式爲:package pkg1[.pkg2[.pkg3…]]; 通常放在文件的最開頭。

在包下的類,需要在“.java”文件所在目錄使用javac進行編譯(會在當前目錄生成class文件),然後返回包的最外層目錄運行,包名的嵌套關係使用“.”進行連接,最後跟上類名,例如:“java pkg1.pkg2.classname”。

7. 使用windows自帶的cmd或者編程工具提供的虛擬Terminal窗口或者PowerShell均可以運行java代碼,但PowerShell的輸入重定向不同於cmd。cmd中纔可以使用“ < "進行輸入重定向。

PowerShell中的輸入重定向:

PowerShell中使用“ < "會報錯:

8.運行時出現錯誤Error: A JNI error has occurred, please check your installation and try again

原因是:使用了不同java版本的javac和java命令,即編譯java程序的java版本和運行java程序的java版本不同。

可以使用如下命令比對一下版本:

javac -version
java -version

解決方法:

①卸載電腦上多餘的java版本,僅保留一個,可以手動卸載,也可以使用java官網有專門的卸載工具,地址:https://www.java.com/zh_CN/download/faq/remove_olderversions.xml

②檢查電腦環境變量設置,將多餘版本的環境變量刪去。

③強制使用同一種版本的java和javac,可以通過編程工具帶有的虛擬環境完成,例如在idea中直接編譯運行。

 

如有其他問題及解決方法歡迎在評論區補充交流!

 

參考鏈接 :

http://xinzhi.wenda.so.com/a/1523443002618642
https://www.cnblogs.com/baby-zhude/p/7918724.html
https://blog.csdn.net/zhaofen_7/article/details/90273128
https://jingyan.baidu.com/article/fdffd1f876ca76f3e88ca14c.html

 

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