如何在命令行工具中实现实用功能

How to implement utility feature in a command line tool

我在 java 中通过名称转换器开发了一个命令行工具,我 运行 通过创建一个 jar 文件并使用下面的命令来 运行 这个工具

java -jar translator.jar < input1 > 

现在我被要求为这个工具添加一个使用/实用功能,例如当我们在命令行上键入 java 时它显示

用法:java [-options] class [args..]

……等 我想为我的工具实现类似的功能。我不知道从哪里开始,因为这是我第一次构建命令行工具。

您可以检查通过 main 方法传递的参数

这样一来,如果有任何内容并且是您所期望的,您将打印有关使用情况的适当消息。

public static void main(String args[]){
    if(args.length > 0){
      //-----take appropraite action ----
      //----- if the value of the parameter is 'usage' --
      //-----print usage into e.t.c---
    }
    //---- other codes--
}

如果您不想自己处理参数, 你可以使用 CLI library from the apache commons project.

对于非常小的项目,这通常没有意义, 但是当你有越来越多的选择时,使用起来就很简单了。

代码流程是这样的example:

public static void main(String args[]){
    // create Options object
    Options options = new Options();

    // add t option
    options.addOption("t", false, "display current time");

    CommandLineParser parser = new DefaultParser();
    CommandLine cmd = parser.parse( options, args);

    if(cmd.hasOption("t")) {
        // print the date and time
    }
    else {
        // print the date
    }
}