參考資料:https://www.cnblogs.com/wangxiaoha/p/6293340.html
場景:
使用java命令運行.class文件時出現:“錯誤: 找不到或無法加載主類”:
解決方法:
使用 java 包名+類名執行,如下:在src下使用 java com.lznb.cloud.TCPEchoClient
原因:
1.java指令默認在尋找class文件的地址是通過CLASSPATH環境變量中指定的目錄中尋找的。
2.我們忽略了package的影響。
注意:
在main目錄下使用java命令執行 :java com.lznb.cloud.TCPEchoClient,路徑是重復的,所以在這里我們需在src下執行即可
總結:
一、java執行class文件是根據CLASSPATH指定的地方來找,不是我們理解當前目錄。如果希望它查詢當前目錄,需要在CLASSPATH中加入“.;”,代表當前目錄。
二、java執行class文件對package的路徑是強依賴的。它在執行的時候會嚴格以當前用戶路徑為基礎,按照package指定的包路徑轉化為文件路徑去搜索class文件