2012-12-03 68 views
2

在我的proj3目錄中,我有一個文件夾gui和文件夾foogui中的文件屬於package foo。使用gmake命令 ,一切編譯文件,但是當我嘗試在foo這就要求gui.Display執行java foo.Main(主要方法),我得到:相同的包,不同的目錄

Exception in thread "main" java.lang.NoClassDefFoundError: foo/Display 
at foo.Main.main(Main.java:45) 
Caused by: java.lang.ClassNotFoundException: foo.Display 

我從proj3目錄編制。我添加了./gui/到我的CLASSPATH,現在有.:./gui/等其他用戶。

任何幫助表示讚賞。

+0

您是否輸入了所需的類? – andreih

+0

'java foo.Main'爲了找到'Main',你從'foo'目錄執行'java'命令嗎? –

+0

@ user1870638''Display''屬於同一個包,所以我認爲不需要導入。不幸的是,有一個問題也不能解決問題。 @AndrewThompson'Main''是package'foo'中的一個類,它有''main''方法。爲了運行我的程序,在proj3目錄的終端中輸入:'''java foo.Main''(我不相信''foo.Main''可以在''foo''目錄內運行。) – jaynp

回答

0

如果gui中的文件屬於包foo。這些文件也應該移動到文件夾foo

+0

它們確實存在於「gui」文件夾中。我有與文件夾「foo」相同的文件夾「gui」。我嘗試在''foo''裏面加上''gui'',但那樣做並沒有好轉。 – jaynp

+0

*「但這並沒有奏效。」*你在這種情況下得到了什麼***確切的錯誤?如果源文件位於同一個包中,則最容易將它們存儲在** same **目錄中。 –

+0

嗯,我確定如果我有''foo''文件夾中的確切文件,它當然會工作。當我的意思是「沒有工作」更好,那就是在''foo''中有整個文件夾''gui''。我實際上得到相同的確切的錯誤。 – jaynp

0

移動gui。顯示包foo

+1

gui.Display確實屬於包foo。如果我將文件gui.Display移動到foo文件夾中,它肯定會工作,但我想要某種分離。 – jaynp