找不到或无法加载主类的原因之一
先聲明,這只是找不到或無法加載主類的原因之一,你在這里并不一定能夠找到方法。這個問題可能是有些初學者會犯的,就是我的程序很簡單應該沒有問題,我的環境變量也配置好了,編譯也沒有問題,怎么總是在運行的時候出這個問題呢?
這很有可能是你的程序中有包聲明,即有package語句,將程序放在了包中。但是你編譯的時候沒有生成包目錄或者運行的時候沒有指定包,就會出現這個問題。下面以一個例子說明這個問題。
下面是一個程序,很簡單:
package Lee; public class Hello {public static void main(String[] args) {System.out.println("Hello World!");} }打開cmd,轉到放程序的目錄比如說是dir\下面(該程序的路徑為dir\Hello.java),然后執行
javac Hello.java
沒有問題,在dir\下面生成了 Hello.class文件(dir\Hello.class)
然后執行這個文件
java Hello
就會蹦出這個錯誤提示
錯誤: 找不到或無法加載主類 Hello
這就是因為,在上面的程序中有包聲明的語句,將該程序放在了一個叫Lee的包中,而在編譯的時候沒有生成相應的包層級。應該用下面的方法編譯
javac -d . Hello.java
-d .是指明生成的目錄為當前目錄,也即dir\。運行這個命名后就會在dir\下面生成一個叫Lee的文件夾,文件夾下有一個叫Hello.class的文件(dir\Lee\Hello.class)。
運行該文件時,不要到dir\Lee\下面運行,就在dir\下面運行
java Lee.Hello
現在你應該能夠看都程序正確的運行結果了。
總結
以上是生活随笔為你收集整理的找不到或无法加载主类的原因之一的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在windows中设置程序运行的cpu
- 下一篇: 利用data store在不同模型中传递