java - 处理命令行程序中的选项

标签 java

这更像是一个(新手)一般编程问题,而不是特定于 Java 的挑战。如果有影响的话,它就是我的目标语言。

如何明智地处理带有在运行过程中可能有多种组合的选项的程序?

例如,假设我有一个音乐播放器命令行应用程序,可以按如下方式运行:muzak -s -v -a -i my_music_dir

*-s:随机播放 *-r:重播一次 *-v:反向播放列表 *-a:重播全部(如果 -a 和 -r 同时处于 Activity 状态,-a 会覆盖) *-i:忽略以前播放的内容(重播文件的机会相同)

当我编写方法时,如何跟踪所有可能的选项?例如。对于具有相同起始顺序的列表,muzak -s -v my_music_dir 会生成与 muzak -v -s my_music_dir 不同的播放列表。

最佳答案

如果您不想重新发明轮子,请使用Apache Commons CLI

import org.apache.commons.cli.*;

public class Main {
    public static void main(String args[]) {
        Options options = new Options();
        options.addOption("t", false, "display current time");
        CommandLineParser parser = new DefaultParser();
        try {
            CommandLine cmd = parser.parse(options, args);
            if(cmd.hasOption("t")) {
                System.out.println("-t is set");
            }
        }
        catch(ParseException exp) {}
    }
}

关于java - 处理命令行程序中的选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40602817/

相关文章:

java - 在Java中接收多个控制台输入

java - 如何在android中部分改变文本的颜色

java - textinputlayout 密码切换图标被阻止

Java - addDigits 方法的大O?

java - RJDBC 问题 : Error in . jfindClass(as.character(driverClass)[1]) :找不到类

java - android - Google places 打开 map 1 秒后关闭

JavaFX - 许多静态 FXML Controller

java - 表单上的错误编码到 Spring MVC

java - java中不同字符的空心正方形

java - 如何更改 JavaFX BarChart 中排序方法中条形的位置?