繁体   English   中英

如何让我的程序接受 Java 中的命令行选项?

[英]How to make my program accept command-line options in Java?

我正在开发一个程序public class Talk ,它以两种方式通信连接客户端和服务器。 我将使用终端窗口运行该程序。 如何添加命令行选项以使这些选项起作用Talk –h [hostname | IPaddress] [–p portnumber] Talk –h [hostname | IPaddress] [–p portnumber]Talk –s [–p portnumber]Talk –a [hostname|IPaddress] [–p portnumber]Talk –help

这是我到目前为止:

if (args[0] == "-h" && args[2] == "-p" && (Integer.parseInt(args[3]) % 1 == 0)) {

            // code for Talk –h [hostname | IPaddress] [–p portnumber]

        } else if (args[0] == "-s" && args[1] == "-p" && (Integer.parseInt(args[2]) % 1 == 0)) {

            // code for Talk –s [–p portnumber]

        } else if (args[0] == "-a" && args[2] == "-p" && (Integer.parseInt(args[3]) % 1 == 0)) {

            // code for Talk –a [hostname|IPaddress] [–p portnumber]

        } else if (args[0] == "-help") {

            // code for Talk –help

        } else {

            System.out.println("Invalid invocation, use -help for instructions on how to use program");
            System.exit(-1);

        }

这是添加命令行选项的正确方法吗? 以及他们的限制?

除非它是一项教育练习,否则您可能会使用一个完善的库来解析命令行做得更好。 common-cli ( https://commons.apache.org/proper/commons-cli/ ) 就是这样一种,尽管还有其他的。

问题是稳健地解析命令行选项很困难 有各种各样的复杂性需要处理,单独的错误检查可能非常繁重。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM