2012-01-25 24 views
-1

我正在從應用程序中爲我生成Java代碼。 我帶走了JRE,並將所有文件解壓縮到一個新目錄中。 有一個沒有任何主要方法的MANIFEST.MF的META-INF文件夾。我如何找到主要課程?入口點?

Witin此JRE是類我但是當我CMD下面很感興趣的代碼...

的Java Steve.class

我得到這個錯誤...

Could not load for find Main Class Steve.class. 

我假設在所有這些類文件的某個地方有一個Main類,但是如何搜索所有這些文檔以找到它?有申請嗎?

謝謝!

+1

*「我得到這個錯誤...」*不,你沒有,請複製/註釋錯誤消息,而不是解釋它們。 「*我帶走了JRE並提取了所有文件」*沒有必要。 –

回答

2

第一:每一個公開此方法簽名類:

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

可能是一個主類從JVM啓動的,並有資格被放在清單,使shell執行。第二:當你在JRE中啓動一個類時,你必須指定該類的全限定名;例如,如果Steve.class文件位於樹形結構(如com/mycompany/app)中,則從您的應用程序的根目錄開始,在MANIFEST目錄所在的位置,應從根目錄啓動它,鍵入:

java com.mycompany.app.Steve 

因此,如果史蒂夫公開了一種主要方法,並且您可以正確地從根指向它,則可以啓動它。

+0

x.x.x.Steve很酷,我得到了這個工作。我得到的錯誤正是你在你的消息中所陳述的。我有以下幾點。 ....公共靜態無效的主要(字符串[]參數) - 我怎麼會把這個到清單文件?我如何知道我可以附加哪些源代碼? –

+0

要設置您的應用程序入口點,您可以在清單文件中添加一行「」;請參閱http://docs.oracle.com/javase/tutorial/deployment/jar/appman.html。 –

+0

要直觀地搜索具有兼容main()方法的類,可以使用IDE(如Eclipse),然後直觀地檢查您的類。 Eclipse會將所有類(編譯或不編譯)顯示爲樹,方法字段等,並且可以讓您對它們執行搜索。 –

6

調用Java程序時,不需要.class後綴。像這樣做:

java Steve 

去尋找哪些類有一個main方法,你可以使用javap每個類文件(Java類文件反彙編程序)。例如:

$ javap Foo 
Compiled from "Foo.java" 
public class Foo extends java.lang.Object{ 
    public Foo(); 
    public static void main(java.lang.String[]); 
}