public class test {
public static void main(String[] args){
for (int i=0;i<args.length;i++){
System.out.println(args[i]);
}
}
}
2、如下程序执行时
执行成功命令如下:
依赖jar包 commons-cli-1.2.jar放在classes目录:
E:\IdeaProjects\learn\target\classes>java -cp .;commons-cli-1.2.jar com.jd.comma
nd.CommandLearn -h
help
commons-cli-1.2.jar放在target目录:
mmand.CommandLearn -h
help
commons-cli-1.2.jar放在lib 目录:
lib com.jd.command.CommandLearn -h
help
加;号执行才成功:不然报找不到CommandLearn 类error (不明白为什么一定要加;才行!!!!)
E:\IdeaProjects\learn\target\classes>java -classpath .;E:\IdeaProjects\learn\lib\commons-cli-1.2.jar com.jd.command.CommandLearn -h
help
E:\IdeaProjects\learn\target\classes>java -classpath ;E:\IdeaProjects\learn\lib
\commons-cli-1.2.jar com.jd.command.CommandLearn -h
help
注:
. 指定当前目录
;相当于linux中的:
参考:java运行jar 指定单个,多个,目录下的依赖jar
package com.jd.command;
import org.apache.commons.cli.*;
import java.util.Properties;
/**
* @Auther: lizibo
* @Date: 2018/6/15 11:49
* @Description:
*/
public class CommandLearn {
public static void main(String[] args) throws ParseException{
CommandLineParser lineParser = new PosixParser();
Options options = buildOptions();
CommandLine cmd = lineParser.parse(options,args);
if(cmd.hasOption('h')){
System.out.println("help");
}
if(cmd.hasOption('v')){
System.out.println("1.0.1");
}
if(cmd.hasOption('r')){
System.out.println("run a app");
runApp( cmd.getOptionValue('r'));
}
if(cmd.hasOption('e')){
System.out.println("list e");
Properties properties = cmd.getOptionProperties("e");
}
if(cmd.hasOption('m')){
System.out.println("list m");
Properties properties = cmd.getOptionProperties("m");
}
}
public static Options buildOptions() {
Options options = new Options();
options.addOption("h", false, "for help");
options.addOption("v", false, "for version");
options.addOption("r", true, "for test hahaha");
options.addOption(OptionBuilder
.withArgName("property=value")
.hasArgs(2)
.withValueSeparator()
.withDescription("eeee o ").create("e"));
options.addOption(OptionBuilder
.withArgName("property=value")
.hasArgs(2)
.withValueSeparator()
.withDescription("mmmm o ").create("m"));
return options;
}
public static void runApp(String s){
System.out.println("s reverse: "+new StringBuffer(s).reverse());
}
}