2010-01-26 97 views
5

我剛剛從http://java.sun.com/docs/books/tutorial/uiswing/examples/events/KeyEventDemoProject/src/events/KeyEventDemo.java複製了Key-Listener代碼。我可以用「javac」命令對其進行壓縮。但是,當我嘗試執行編譯後的代碼(輸入「java的KeyEventDemo」),我到底有大的消息,其中我看到:爲什麼Java找不到主類?

Could not find the main class: KeyEventDemo. Program will exit. 

昨天我在Windows Vista中有一個similar problem(現在我在Ubuntu )。在Windows中,我可以通過鍵入「java -cp。ProgramName」或者向環境變量「classpath」添加新值(「。」和「..」)來解決問題。

在Ubuntu上,第一個解決方案不起作用。我的意思是,當我輸入「java -cp。KeyEventDemo」時,我仍然有問題。而且,在Ubuntu上我只能輸入「java ProgramName」就能運行其他程序。

那麼,有誰能告訴我這個KeyEventDemo有什麼特別之處嗎?爲什麼它不會工作以及如何解決?

+0

您只有一個文件,爲什麼不現在刪除包名?當我刪除它時它對我很好。 – 2010-01-26 09:52:36

回答

4

這是因爲KeyEvent類是在包事件

您必須刪除程序包事件;從源代碼線,或編譯:

javac -d . KeyEventDemo.java 
5

這個方案是不是在默認的包,但包「事件」:用java -cp . events.KeyEventDemo從包含的文件夾目錄「事件」:

 
    +work 
    +events 
    -KeyEventDemo.class 
7

KeyEventDemo在包events運行它,你必須在包含類events文件夾的文件夾,並使用其全名運行它,包括包裝:

java events.KeyEventDemo 

類路徑必須包含文件夾(或JAR),它是表示包的文件夾層次結構的根;目前的文件夾是(我相信)自動包含。

0

也許你編譯和diferent的Java版本上運行。 當您嘗試在eclipse上執行示例時,這很常見。

+3

嗨歡迎來到stackoverflow。這個問題在3年前已經得到解答,問題已經確定。下一次請先閱讀現有答案,並檢查是否已被接受,然後再對舊問題提供答案。 – Rutix 2012-12-14 20:18:49