簡體   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