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

时间:2015-02-04 07:45:26

标签: java command-line-interface utility

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

java -jar translator.jar< input1>

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

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

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

2 个答案:

答案 0 :(得分:0)

您可以检查通过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--
}

答案 1 :(得分:0)

如果你不想自己处理这些论点, 您可以使用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
    }
}