2017-08-29 112 views
0

文件「HelloDemo.java」路徑「/test/hello/HelloDemo.java」錯誤類未找到固定的,但我不明白爲什麼

package test.hello; 

public class HelloDemo { 
    public static void main(String[] args) { 
     System.out.print("Hello!!"); 
    } 
} 

,當我「跑」了,錯誤發生。

Building HelloDemo.java and running HelloDemo 
Error: Could not find or load main class HelloDemo 

然後,我改變了代碼。

//package test.hello; 

public class HelloDemo { 
    public static void main(String[] args) { 
     System.out.print("Hello!!"); 
    } 
} 

當我「運行」它時,代碼成功輸出。

Building HelloDemo.java and running HelloDemo 
Hello!! 

這是關於「運行」的screenshot。 我修正了一個錯誤,但我不知道爲什麼,我需要幫助,謝謝!

如果我想保留包的取消註釋,如何解決它?

+1

您的第一個「未固定」版本與第二個版本運行得一樣好。添加主要方法後,你可能忘記保存它嗎? –

+0

我在運行之前保存了它。我的IDE是ide.cloud9.io –

回答

0

這是因爲您在運行文件後可能更改了文件的位置。因此,正在運行的配置應該更改爲在構建的jar中查找新的test.hello.HelloDemo類,而不再是HelloDemo(最初可能在默認包中)。你的IDE是什麼?

備註:這不是因爲您更改了文件的類路徑更改的位置,反之亦然。

上的IntelliJ,你應該這樣做:https://www.jetbrains.com/help/idea/creating-and-editing-run-debug-configurations.html

+0

我的IDE是ide.cloud9.io –

+0

檢查此鏈接:https://docs.c9.io/docs/running-and-debugging-code並修改運行配置以設置正確的類。如果你把「X.Y包」放在文件中,那麼你的類路徑是X.Y.ClassName – belka

+0

如果回答你的問題,請將問題標記爲回答。 – belka

0

使用您的IDE創建一個包並添加您的類到它。包名將自動附加到頂部。 Reguardless的IDE,文件夾結構應該匹配包結構,你的問題可能在這裏。

+0

包名將自動附加到cloud9 IDE中?爲什麼我看不到它? –

+0

然後,您必須手動將文件夾層次結構與包層次結構匹配。 –

0

類的名字實際上是包加類名。在第一種情況下,您不能運行HelloDemo,因爲這不是類名。班級名稱是test.hello.HelloDemo

通過註釋掉包裝,您基本上已將類重命名爲HelloDemo,因此它會運行。

另外,當用main運行class時,你必須在正確的位置。例如,如果班級爲test.hello.HelloDemo,則您的文件夾結構將爲/test/hello/HelloDemo.java

您必須在/並從那裏運行test.hello.HelloDemo

相關問題