2012-08-28 61 views
1

我得到上面的錯誤,當我嘗試編譯這個簡單程序:如何傳遞命令行參數?

/* @author 
* This program expects two command-line arguments 
* -- a person's first name and last name. 
* For example: 
* C:\Mywork> java Greetin Annabel Lee 
*/ 
public class Greetin 
{ 
    public static void main(String[] args) 
    { 
     String firstName = args[0]; 
     String lastName = args[1]; 
     System.out.println("Hello, " + firstName + " " + lastName); 
     System.out.println("Congratulations on your second program!"); 
    } 
} 

從尋找其他的問題,我理解錯誤有事情做與args == 00比數量越多,但我不不知道如何解決這個問題。 是否有任何方式的錯誤也被確定爲void造成的?

+0

當你運行程序時,你傳遞了兩個參數嗎?哪一條是12號線? –

+0

第12行是字符串firstName = args [0]; – user1629075

+0

我想我分別傳遞args [0]和args [1]的名字和姓氏的兩個參數b/c。 – user1629075

回答

2

我的猜測是沒有任何參數提供給您的程序。良好的約定是確保用戶輸入預期的參數量,否則死亡。你的情況:

if(args.length != 2){ 
    System.out.println("usage: Greetin <firstName> <lastName>"); 
} 
else{ 
    String firstName = args[0]; 
    String lastName = args[1]; 
    System.out.println("Hello, " + firstName + " " + lastName); 
    System.out.println("Congratulations on your second program!"); 
} 

此外,還要確保你鍵入:java Greetin Annabel Lee編譯正確設置參數之後。

+0

謝謝,修復幫助,我開始在Java,所以一些術語有點外國,但我會習慣它與一些學習。 – user1629075

1

您可能不會將兩個命令行參數傳遞給您的程序。錯誤是告訴你,數組args沒有任何元素,因爲索引0超出了有效邊界。確保在運行程序時傳遞參數。

java Greetin Annabel Lee