谈谈java的命令行参数

当我们在运行java程序的时候,常常需要从外界输入参数“到”程序,这里以运行jar包为例,总结两种传参数到程序的方式。

一、将参数依次直接放在命令行后面

常见格式为:

java (虚拟机参数,如:-Xmx10240m -Xss12800k) -jar jar包名 参数1 参数2。。。

各个参数间用空格隔开;

在程序里,依次取出来:

String parameter1="";

String parameter2="";
if(args.length != 2) {
System.out.println("---Please  Input Right Parameter!---");
System.exit(0);
}
else {
parameter1=args[0];

parameter2=args[1];
}


这种方式是最常见的,然而这样传参需要外界知道参数的位置顺序,看得不直观,第二种方式会直观点;


二、将参数放在命令行后面

String port="9999";
String saveFileName = "repsonTime";
String nodeName = "北京";
String interval="12";
// Create a Parser  
CommandLineParser parser = new BasicParser( );  
Options options = new Options( );  
options.addOption("p", "portname", true, "input port to listen");  
options.addOption("g", "logname", true, "log output to" );  
options.addOption("n", "nodename", true, "input nodeName");   
options.addOption("t", "send mail  interval", true, "send mail  interval");   
options.addOption("h", "helpInfo", false, "parameter information"); 
CommandLine commandLine = parser.parse( options, argv );  
if( commandLine.hasOption('h') ) {  
System.out.println("-p: \t listen port\n"+
"-g: \t log name\n"+
"-n: \t node name\n" + 
"-t: \t send mail  interval\n");
}  
if( commandLine.hasOption('p') ) {  
port=commandLine.getOptionValue('p');  
}  
if( commandLine.hasOption('g') ) {  
saveFileName=commandLine.getOptionValue('g');  
}  
if( commandLine.hasOption('n') ) {  
nodeName=commandLine.getOptionValue('n');
}  
if( commandLine.hasOption('t') ) {  
interval=commandLine.getOptionValue('t');

System.out.println("监听端口:"+port+"\t"+
"日志名:"+saveFileName+"\t"+
"节点名:"+nodeName+"\t"+
"发送邮件时间间隔:"+interval);

这种方式会好点,如果不清楚每个参数选项的含义,先输入-h查看即可。

但需要引入外界的jar包——commons-cli-1.2.jar,我的资源里可以下载“java解析命令行参数的jar包”!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值