2011-05-09 127 views
1

我在Eclipse中創建了一個java程序。當我在Eclipse中運行程序(「作爲 - > Java應用程序運行」)時,程序運行良好,並且我有正確的輸出。然而,當我嘗試在命令行界面運行程序,我得到這個錯誤:從命令行界面運行java程序的問題

Exception in thread "main" java.lang.NoClassDefFoundError : HelloWorld (wrong name: helloworld/HelloWorld) Could not find the main class: HelloWorld. Program will exit.

類文件目錄bin和我嘗試用命令來運行它:

java HelloWorld 
+0

你的班級是否在默認包中(即沒有包聲明)?當說'我嘗試用命令:java HelloWorld'編譯它時,你的意思是運行嗎? – wjans 2011-05-09 09:41:12

+0

是的我的意思是運行該項目不編譯它。 – Victor 2011-05-09 09:52:15

+0

我的課程有一個包裝聲明:package helloworld; – Victor 2011-05-09 09:53:34

回答

1

由於類是在包helloworld,你應該這樣運行:

java helloworld.HelloWorld 

另外,還要確保「」在你的類路徑中。

+0

它工作。我必須在helloworld目錄之前的目錄中鍵入它。 – Victor 2011-05-09 10:11:07

1

I try to compile it with the command: java HelloWorld

編譯你應該使用javac命令就像一個Java程序

javac Helloworld.java 
+0

我的意思是運行該文件不編譯它,因爲它已經編譯。 – Victor 2011-05-09 09:43:25

+0

@Victor:你在運行它時在classpath中提供了所有需要的jar嗎? – 2011-05-09 09:48:21

+0

我沒有罐子文件只有HelloWorld.class文件和HelloWorld.java – Victor 2011-05-09 09:51:32

1

你肯定在您的類目錄在類路徑中?通常,在你的項目目錄中,「classes」或「lib」目錄。

如果您從該目錄運行,則可以嘗試添加「。」。

請參閱java運行時可執行文件的-cp參數。

+0

但是該文件已經編譯好了,我只需要運行它。 – Victor 2011-05-09 09:42:31

+0

你需要這個來運行它,編譯它的命令是javac。 – SJuan76 2011-05-09 11:28:16