如何使用命令行参数来决定程序流程?

时间:2015-02-17 02:09:35

标签: java methods command-line-arguments

我似乎已经搜索了所有Google,我找不到任何关于如何使用命令行参数告诉Java程序执行哪个后续方法的内容。我正在尝试创建一个Java程序,其中包含学生评分应用程序的几个不同方面。

主程序是一个GUI表单,用户可以在该表单中为特定班级中的每个学生输入成绩。除此之外,我需要一个接受3个命令参数的控制程序。第一个是表示要加载的文件类型的数字(1. XML 2. JSON 3. TXT)。第二个是表示文件材料的字母(C表示课程数据,S表示学生数据)。最后一个参数是要上载的特定数据文件的名称,然后将其提取并上载到GUI程序使用的数据库中。

除了命令参数之外,我已经编写了程序的其余部分,因为我完全不知道我在做什么。命令参数代码应该看起来像这样

public class Load
{
    //Define global variables
    static String inputDataChoice;
    static String inputTableChoice;
    static String inputFileName;

    public static void main(String[] arg)
    {
        if (userChose == arg[0], arg[3], arg[5])
        {
            //If user chose 1 (XML), S (Student), and xmltest.xml
            //Go to ParseXMLStudentFile();
        }

        if (userChose == arg[1], arg[4], arg[6])
        {
            //If user chose 2 (JSON), C (Course), and jsontest.json
            //Go to ParseJSONCourseFile();
        }

        if (userChose == arg[2], arg[3], arg[7])
        {
            //If user chose 3 (TXT), S (Student), and test.txt
            //Go to ParseTXTStudentFile();
        }
    }
}

我知道上面的代码是假的,但这是一般的想法。如何接受用户的命令参数,然后使用该输入来决定执行哪个方法?该程序是否会使用控制台窗口来接受用户输入?请帮忙!

1 个答案:

答案 0 :(得分:0)

arg包含传递给命令行的参数,即如果您使用prog.jar XML S xmltest.xml调用prog:

String fileType = arg[0]; // == XML
String material = arg[1]; // == S
String fileName = arg[2]; // == xmltest.xml
if (fileType.equals("XML") && material.equals("S")) {
    parseXMLStudentFile(fileName);
} else { // ...
}