2013-04-25 283 views
29

我想在新項目中運行一些java文件。所以我做了這個項目,把它放在裏面,我試着運行主文件,這樣我的遊戲就開始了。錯誤:選擇不包含主類型

我收到一個錯誤,說selection does not contain a main type

我嘗試了好幾種方法來運行它:

  • 有人說,到日食再次啓動,這嘗試了十幾次。
  • 某處有人指出要打開一個新項目併爲舊項目建立一條生成路徑。

也沒有工作。

我非常確定它必須工作,因爲我幾小時前在學校跑了它。我如何得到這個工作?先謝謝你!

+11

你有一個'公共靜態void main(String [] args)'在任何地方? – Zyerah 2013-04-25 21:40:23

+1

我確實有公開課「姓名」擴展JFrame – user2321611 2013-04-25 21:43:50

+6

你也許應該回答Telthiens的問題:) – 2013-04-25 21:44:25

回答

19

希望你嘗試運行的主類以這種方式見截圖: enter image description here

如果沒有那就試試這個方法,如果是,那麼請確保您的類,你要運行具有主要方法即

public static void main(String[] args){ // some code here} 

相同的定義。希望這會幫助你。

6

的入口點的Java程序是方法:

public static void main(String[] args) { 
    //Code 
} 

如果你沒有這個,你的程序將無法運行。

38

其他答案都是有效的,但是,如果仍然有問題,您可能沒有將您的類放在src文件夾中,在這種情況下,Eclipse可能不會將其視爲項目的一部分。這也會調用你所看到的同樣的錯誤信息。

+10

謝謝,不在src文件夾中的文件對我來說是個問題。 – Dois 2015-02-01 06:14:06

1

您必須將所有文件(file.java)放在根文件夾SRC下。

3

幾件事情要檢查:

  1. 你有一個主包?你所有的課都在這個包裏嗎?
  2. 你使用公共靜態無效主要(字符串[]參數)的主類?
  3. 您是否聲明:package;在你的主班?
  4. 您可以在運行之前始終清理項目。在Eclipse中 - 只需轉到Project - > clean然後再次運行應用程序。
26

右鍵單擊放置主類的文件夾,然後單擊Build PathUse as Source Folder

最後以java應用程序的形式運行你的主文件。希望這個問題將得到解決。

5

我解決了這個問題,方法是添加一個新的源文件夾並將我的java文件放在該文件夾中。 「源文件夾」不僅僅是我相信的任何文件夾。它的一些特殊的文件夾類型爲java/eclipse,可以通過在項目 - >屬性 - > Java buld路徑 - >源添加一個文件夾在Eclipse中添加

0

我遇到了同樣的問題,發現那裏是一個額外的花括號(大括號)括在公共靜態void main(String args){...}。這個方法應該真的在類的頂端範圍內,不應該被包圍在大括號中。在Eclipse中工作時,似乎有可能最終使用此方法的大括號。這可能只是您在使用Eclipse時看到此問題的一種方式。快樂的編碼!

0

在Eclipse中將項目添加到項目中並將它們構建爲構建路徑的一部分之後,我反覆發生了這種情況。解決方案是右鍵單擊包含main方法的類,然後選擇運行方式 - > Java應用程序。看起來,當您將文件添加到構建路徑時,Eclipse會自動假定該文件是方法所在的位置。通過運行方式菜單而不是點擊綠色的運行方式按鈕,它可以讓你指定正確的入口點。

+0

如果說這個雖然有*是一種主要方法? – trusktr 2014-07-12 00:02:34

3

我遇到了同樣的問題。我通過右鍵單擊包 - >屬性 - > Java Build Path - >添加文件夾(選擇您的代碼所在的文件夾)來解決問題。

+0

除非這是不同的版本,'package'應該在上面的路徑中是'project'。 – Carcigenicate 2015-02-03 01:54:08

0

保存文件時,請確保它具有擴展名.java。如果沒有,Eclipse不會知道將它作爲java文件讀取。

1

我從Ubuntu運行eclipse。有這個相同的問題,並能通過終端運行程序。所以我只是將現有的public static void main(String[] args) {移動到類聲明的下方(它通過eclipse自動格式化),並且下一次啓動成功。然後將主要方法移回原來的位置,這次它工作得很好。