標籤:使用 商業 [] blog 一個 contain 上層 找不到 授權
這邊提供一個關於程式中含有package關鍵字,使用“終端”運行程式時出現“找不到或無法載入主類”,而使用Eclipse軟體可以正常運行程式的可能解決辦法。
例如程式名為HelloWorldTest.java,程式中含有package helloWorld語句,而該包位於javatest目錄下,即javatest/helloWorld/HelloWorldTest.java。
應該在java檔案所在的目錄運行javac指令,即在helloWorld目錄中運行javac HelloWorldTest.java
再在包所在的上層目錄中運行java指令,即在javatest目錄中運行java helloWorld.HelloWorldTest
由於是在OS X環境下學習的java,對於classpath等的設定不太熟悉,可能此方法與部分答主所述為同一意思。
顧志方
連結:https://www.zhihu.com/question/36537093/answer/206814470
來源:知乎
著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。 https://www.cnblogs.com/Ring1981/p/6240412.html
//這個問題原因有以下幾種,但是和環境變數並沒有太大的關係
//能夠執行java 和 javac 就證明你的環境變數已經配置好了,其實 classpath 可以不配置
//假如有如下檔案:H:\code\Hello.java
public
class
Hello{
public
static
void
main(String[]args){
System.out.println(
"Hello"
);
}
}
//正確編譯命令: javac Hello.java
//正確運行命令: java Hello
錯誤
1
:H:\code>java Hello.java
錯誤: 找不到或無法載入主類 Hello.java
原因:命令錯誤
錯誤
2
:H:\code>java Hello.
class
錯誤: 找不到或無法載入主類 Hello.
class
原因:命令錯誤
錯誤
3
:java 源檔案帶有包名,往往容易出錯
如:H:\code\Hello2.java
package
com.example;
public
class
Hello2{
public
static
void
main(String[]args){
System.out.println(
"Hello2"
);
}
}
這代碼看上去沒什麼問題,執行:
H:\code>javac Hello2.java
H:\code>java Hello2
錯誤: 找不到或無法載入主類 Hello2
解決辦法:
+.刪除包名 或者
+.在code 下建立一個與包名相同的檔案結構(H:\code\com\example\Hello2.java)
編譯:H:\code>javac com/example/Hello2.java
運行:H:\code>java com.example.Hello2
編譯和運行java檔案 找不到或無法載入主類