2014-02-10 65 views
0

在java中,可以在程序啓動期間將cmd行參數傳遞給main()方法。將cmd行參數傳遞給特定方法

我想將cmd行參數傳遞給我直接從腳本調用的特定方法。我沒有運氣,只是輸入他們,因爲我會爲main()

例子:

public class Test { 
    public static void main(String[] args) { // args is cmd line input 
     // do stuff with args 
    } 
} 

你會做:~]# java Test cmdlineinput

我需要做的:

public class Test { 
    public void someMethod(String input) { 
     // do stuff with input 
    } 
} 

我想做的事:~]# java Test.someMethod cmdlineinput

這是可能的,怎麼會這樣?

回答

5

您的程序需要一個主要的方法來運行,並且您必須將命令行參數直接或間接地從主要方法傳遞到您希望它去的任何位置。我知道沒有其他解決方案。

public static void main(String[] args) { 
    Test test = new Test(); 
    test.someMethod(args); 
} 
+0

我覺得他想直接從命令行調用一個方法,這很奇怪,但這就是他所說的 – Brian

+0

@Brian:我認爲你是對的,但正如我在我的回答中所述,afaik ,這是無法完成的。肯定的是,儘管有一些背景可能會很好,你知道嗎? –

+1

https://stackoverflow.com/a/13338025/2591612 – Brian

2

按照慣例,JVM會尋找main和調用。您不能直接從命令行調用方法。但是,如果您爲JVM使用REPL,例如Groovy和groovysh,則可以從shell中調用方法。這可能會或可能不適用於您的用例。但是,它在技術上允許您單獨調用Java方法並調用它們。閱讀更多在此question

+0

謝謝,並且1 +投票! –