如何要求在Java应用程序上使用的CMD上的文件



我当前正在编写一个Java应用程序以自动化损坏的链接测试。我想做的是编写命令

java test.jar

用户必须写

-f file.txt

在同一comand行中,包括包含包含要测试的所有URL页面的文件。另外,我希望用户(可选地)在其中找到所有要忽略所有URL的文件。例如

-ignore ignoreUrl.txt

这是您发现非常有用的库:https://commons.apache.org/proper/commons-cli/

在您的情况下是:

private Options createOptions() {
    Options result = new Options();
    Option file = Option.builder("f")
            .required()
            .argName("f")
            .desc("Name of the file.")
            .hasArg()
            .build();
    Option ignore = Option.builder("i")
            .argName("ignore")
            .desc("File name to ignore")
            .hasArg()
            .build();
    result.addOption(file);
    result.addOption(ignore);
    return result;
}

public boolean parse(String[] args) {
    if (args == null || args.length == 0) {
        return false;
    }
    CommandLineParser parser = new DefaultParser();
    try {
        commandLine = parser.parse(createOptions(), args);
    } catch (ParseException e) {
        e.printStackTrace();
        return false;
    }
    return true;
}

请注意,在parse()方法中,您有一个对"命令行"的引用。从那里您可以使用:

commandLine.getOptionValue("f")

获取文件名等。

最新更新