使用 CLI 處理命令行
發表時間:2024-01-07 來源:明輝站整理相關軟件相關文章人氣:
[摘要]編寫處理命令行參數的代碼并不是一件很令人興奮的事,但是有時候依然有必要這樣做。在下次需要分析命令行參數并且事情有點復雜的時候,可不要忘了可信賴的開放源代碼 Java 工具箱,并使用命令行接口(CLI,Command Line Interface)。 Jakarta Commons 負責 CLI...
編寫處理命令行參數的代碼并不是一件很令人興奮的事,但是有時候依然有必要這樣做。在下次需要分析命令行參數并且事情有點復雜的時候,可不要忘了可信賴的開放源代碼 Java 工具箱,并使用命令行接口(CLI,Command Line Interface)。
Jakarta Commons 負責 CLI 項目。雖然說如果只有一兩個參數使用它就顯得大材小用,但是如果你的應用程序從命令行接受很多設置參數的話,它就是很必要的。
要使用 CLI,你需要創建 Options 類的一個實例:
Options opt = new Options();
使用 Options 的這個實例可以定義應用程序接受的命令行參數。定義命令行參數的一個方法是使用 Options 類的addOption() 方法。對應用程序可接受的每個選項調用一次這個方法。
opt.addOption("h", false, "Print help for this application");
opt.addOption("u", true, "The username to use");
opt.addOption("dsn", true, "The data source to use");
在定義好類的參數之后,創建一個CommandLineParser,然后解析傳遞給 main 方法的 String 數組。
BasicParser parser = new BasicParser();
CommandLinecl = parser.parse(opt, args);
現在所有的參數都已被解析,你就可以分析由解析器返回的CommandLine實例來確定用戶提供的參數和值了。
if ( cl.hasOption('h') ) {
HelpFormatter f = new HelpFormatter();
f.printHelp("OptionsTip", opt);
}
else {
System.out.println(cl.getOptionValue("u"));
System.out.println(cl.getOptionValue("dsn"));
}
從上面的代碼可以看到,你可以使用HelpFormatter類自動地為程序生成用法信息。
下面是完整的代碼:
// OptionsTip.java
import org.apache.commons.cli.BasicParser;
import org.apache.commons.cli.Options;
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.HelpFormatter;
import org.apache.commons.cli.ParseException;
public class OptionsTip {
public static void main(String args[]) {
try {
Options opt = new Options();
opt.addOption("h", false, "Print help for this application");
opt.addOption("u", true, "The username to use");
opt.addOption("dsn", true, "The data source to use");
BasicParser parser = new BasicParser();
CommandLinecl = parser.parse(opt, args);
if ( cl.hasOption('h') ) {
HelpFormatter f = new HelpFormatter();
f.printHelp("OptionsTip", opt);
}
else {
System.out.println(cl.getOptionValue("u"));
System.out.println(cl.getOptionValue("dsn"));
}
}
catch (ParseException e) {
e.printStackTrace();
}
}
}