利用Apache的CLI来处理命令行
2009-02-07 11:51
141 查看
CLI是Jakarta
Commons中的一个子类。如果你仅仅只有一到两个参数需要处理,那么使用它有点多余,但是,如果你需要从命令行中捕获大多数应用程序的设置参数,那么使用CLI是恰到好处的。
在使用CLI之前需要创建一个Options对象,该对象相当于一个容器,另外还有Option对象,每个Option对象相对于命令行中的一个参数。
Options opts = new
Options();
通过利用这个Options,你可以使用addOption()方法定义你的应用程序可接受的命令行参数,每次都为一个option调用一次这个方法,看下面例示:
opts.addOption("h", false, "Print help for this
application");
opts.addOption("u", true, "The username to
use");
opts.addOption("dsn", true, "The data source to
use");
当然你也可以单独创建Option对线,然后使用addOption()方法添加进去。如下:
Option op = new Option("h", false, "Print help for this
application");
一旦你定义了类的参数,创建一个CommandLineParser,并分析已传送到主方法中的组。
BasicParser parser = new BasicParser();
CommandLine
cl = parser.parse(opts,
args);
等到所有的参数都被解析以后,你可以开始检查返回的命令行,这些命令行中,提供用户的参数和值已被语法分析程序详细检查过了。
if (cl.hasOption('h')) {
HelpFormatter hf =
new HelpFormatter();
hf.printHelp("OptionsTip", opts);
} else
{
System.out.println(cl.getOptionValue("u"));
System.out.println(cl.getOptionValue("dsn"));
}
就象你看到的那样,你可以使用HelpRormatter类为你的程序自动地产生使用信息。
下面看一下全部的代码:
package com.founder.common;
import
org.apache.commons.cli.BasicParser;
import
org.apache.commons.cli.CommandLine;
import
org.apache.commons.cli.HelpFormatter;
import
org.apache.commons.cli.Options;
import
org.apache.commons.cli.ParseException;
public class OptionsTip {
public static void main(String[] args)
{
try {
Options opts = new Options();
opts.addOption("h",
false, "Print help for this application");
opts.addOption("u", true, "The
username to use");
opts.addOption("dsn", true, "The data source to
use");
BasicParser parser = new BasicParser();
CommandLine cl =
parser.parse(opts, args);
if (cl.hasOption('h'))
{
HelpFormatter hf = new
HelpFormatter();
hf.printHelp("OptionsTip", opts);
} else
{
System.out.println(cl.getOptionValue("u"));
System.out.println(cl.getOptionValue("dsn"));
}
}
catch (ParseException pe) {
pe.printStackTrace();
}
}
}
注:使用此程序时候别忘了把commons-cli-1.0.jar加入到你的classpath中
运行结果:
E:/javaworkspace/collection/src>java
com.founder.common.OptionsTip -h
usage:
OptionsTip
-dsn The data source to use
-h Print help for this
application
-u The username to use
E:/javaworkspace/collection/src>java
com.founder.common.OptionsTip -u eric -dsn founder
eric
founder
Commons中的一个子类。如果你仅仅只有一到两个参数需要处理,那么使用它有点多余,但是,如果你需要从命令行中捕获大多数应用程序的设置参数,那么使用CLI是恰到好处的。
在使用CLI之前需要创建一个Options对象,该对象相当于一个容器,另外还有Option对象,每个Option对象相对于命令行中的一个参数。
Options opts = new
Options();
通过利用这个Options,你可以使用addOption()方法定义你的应用程序可接受的命令行参数,每次都为一个option调用一次这个方法,看下面例示:
opts.addOption("h", false, "Print help for this
application");
opts.addOption("u", true, "The username to
use");
opts.addOption("dsn", true, "The data source to
use");
当然你也可以单独创建Option对线,然后使用addOption()方法添加进去。如下:
Option op = new Option("h", false, "Print help for this
application");
一旦你定义了类的参数,创建一个CommandLineParser,并分析已传送到主方法中的组。
BasicParser parser = new BasicParser();
CommandLine
cl = parser.parse(opts,
args);
等到所有的参数都被解析以后,你可以开始检查返回的命令行,这些命令行中,提供用户的参数和值已被语法分析程序详细检查过了。
if (cl.hasOption('h')) {
HelpFormatter hf =
new HelpFormatter();
hf.printHelp("OptionsTip", opts);
} else
{
System.out.println(cl.getOptionValue("u"));
System.out.println(cl.getOptionValue("dsn"));
}
就象你看到的那样,你可以使用HelpRormatter类为你的程序自动地产生使用信息。
下面看一下全部的代码:
package com.founder.common;
import
org.apache.commons.cli.BasicParser;
import
org.apache.commons.cli.CommandLine;
import
org.apache.commons.cli.HelpFormatter;
import
org.apache.commons.cli.Options;
import
org.apache.commons.cli.ParseException;
public class OptionsTip {
public static void main(String[] args)
{
try {
Options opts = new Options();
opts.addOption("h",
false, "Print help for this application");
opts.addOption("u", true, "The
username to use");
opts.addOption("dsn", true, "The data source to
use");
BasicParser parser = new BasicParser();
CommandLine cl =
parser.parse(opts, args);
if (cl.hasOption('h'))
{
HelpFormatter hf = new
HelpFormatter();
hf.printHelp("OptionsTip", opts);
} else
{
System.out.println(cl.getOptionValue("u"));
System.out.println(cl.getOptionValue("dsn"));
}
}
catch (ParseException pe) {
pe.printStackTrace();
}
}
}
注:使用此程序时候别忘了把commons-cli-1.0.jar加入到你的classpath中
运行结果:
E:/javaworkspace/collection/src>java
com.founder.common.OptionsTip -h
usage:
OptionsTip
-dsn The data source to use
-h Print help for this
application
-u The username to use
E:/javaworkspace/collection/src>java
com.founder.common.OptionsTip -u eric -dsn founder
eric
founder
相关文章推荐
- 利用Apache的CLI来处理命令行
- 利用Apache的CLI来处理命令行
- 利用Apache的CLI来处理命令行
- 利用Apache的CLI来处理命令行
- Apache:如何利用.htaccess文件对PHP网站或文件进行伪静态处理
- Apache Commons CLI命令行启动
- Apache:如何利用.htaccess文件对PHP网站或文件进行伪静态处理
- JAVA命令行开发工具Apache Cli
- Java命令行解析工具Apache CLI
- 利用 Apache 为个人用户创建 web 站点及其报错处理
- 利用Apache Commons Exec调用命令行并取得命令行的输出(实例)
- 利用org.apache.tools.zip包处理zip格式压缩和解压
- 在Vue组件化中利用axios处理ajax请求的使用方法
- 利用sed处理文档替换空格的命令
- 命令行操作jar,文件写入中文乱码处理
- apache网站访问慢的实践处理过程
- 利用SQL Profiler处理开销较大的查询
- 利用web workers实现多线程处理
- 利用PHP应用图像处理生成验证码
- Node.js命令行/批处理中如何更改Linux用户密码浅析