在Java中为终端应用程序创建命令

时间:2015-08-13 15:28:23

标签: java shell command-line

我是编程新手,我正在制作一个在命令行中运行的应用。我发现我可以使用BufferedReader从命令行读取输入。

BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
    String Input = "";

while (Input.equalsIgnoreCase("Stop") == false) {
        Input = in.readLine();  
        //Here comes the tricky part
    }

    in.close();

我现在要做的是找到一种方法来创建不同的“命令”,只需在命令行中键入它们就可以使用它们。但是这些命令可能必须多次使用。我是否必须使用某种命令设计模式和一个巨大的switch语句(这对我来说似乎不对)?我想避免使用额外的库

有没有经验的人可以帮助我?

2 个答案:

答案 0 :(得分:4)

您可以尝试这样的事情:

public static void main(String[] args) {
    BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
    String input = "";
    try {
        while (!input.equalsIgnoreCase("stop")) {
            showMenu();
            input = in.readLine();
            if(input.equals("1")) {
                //do something
            }
            else if(input.equals("2")) {
                //do something else
            }
            else if(input.equals("3")) {
                // do something else
            }
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
}

public static void showMenu() {
    System.out.println("Enter 1, 2, 3, or \"stop\" to exit");
}

优良作法是保持variables下限。

我还要说!Input.equalsIgnoreCase("stop")Input.equalsIgnoreCase("stop") == false更具可读性,尽管两者在逻辑上是等价的。

答案 1 :(得分:0)

如果它只是读取程序参数,您可以将它们添加到Java应用程序调用之后,并通过main方法的args参数访问它们。然后,您可以遍历数组并搜索程序接受的标记。