java命令行执行

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目录:

E:\IdeaProjects\learn\target\classes>java -cp .;../commons-cli-1.2.jar com.jd.co
mmand.CommandLearn -h
help


commons-cli-1.2.jar放在lib 目录:

E:\IdeaProjects\learn\target\classes>java -Djava.ext.dirs=E:\IdeaProjects\learn\
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());
    }
}





猜你喜欢

转载自blog.csdn.net/wwwtotoro/article/details/80708583
今日推荐