java-构建jar带哟参数提示的

使用command的cli包构建带有参数提示的jar包

需要引入command cli的依赖

<commons.version>1.2</commons.version>
        <dependency>
            <groupId>commons-cli</groupId>
            <artifactId>commons-cli</artifactId>
            <version>${commons.version}</version>
        </dependency>
package com.wenbronk.storm.test.optional;

import org.apache.commons.cli.*;
import org.apache.storm.shade.org.apache.commons.lang.StringUtils;

import java.util.function.IntPredicate;

public class OptionTest {

    /**
     * Options使用
     * @return
     */
    private final static Options buildOptions() {
        Options options = new Options();
        options.addOption("intype", true, "[options] txt(default)");
        options.addOption("inn", true, "[required] input original data");
        options.addOption("out", true, "[required] output directory");
        return options;
    }

    private final static void printUsage(Options options) {
        HelpFormatter helpFormatter = new HelpFormatter();
        helpFormatter.printHelp("OptionsUsage", options);
    }

    public static void main(String[] args) throws ParseException {
        Options options = buildOptions();

        BasicParser basicParser = new BasicParser();
        CommandLine commandLine = basicParser.parse(options, args);

        if (!commandLine.hasOption("intype") && !commandLine.hasOption("out")) {
            printUsage(options);
            return;
        }

        String in = commandLine.getOptionValue("inn");
        if (StringUtils.isNotEmpty(in) && !in.endsWith("txt")) {
            printUsage(options);
            return;
        }
        System.out.println("in  " + in);

        // 默认txt格式
        String intype = commandLine.getOptionValue("intype", "txt");
        System.out.println("intype  " + intype);

        String output = commandLine.getOptionValue("out");
        if(output.endsWith("/")){
            output = output.substring(0, output.length()-1);
        }
        System.out.println("output  " + output);

    }

}

原文地址:https://www.cnblogs.com/wenbronk/p/8440037.html

时间: 2024-11-13 06:49:06

java-构建jar带哟参数提示的的相关文章

Java反射创建带构造参数的类 并执行方法

部分代码 public void go(ServletRequest request,ServletResponse response){ String methodName = "index";//方法名 String className = "indexAction";//类名 try{ Class<?> action = Class.forName(className); //参数列表 Class<?>[] parameterTypes

jmeter接口测试-调用java的jar包-csv参数化请求-BeanShellPreProcessor生成验签作为请求验证参数-中文乱码----实战

背景及思路: 需求:要做 创建新卡 接口的测试,要求: 1. 不需要每次手动修改请求参数. 方案:文中先用excle将数据准备好,导出为csv格式,再用jmeter的csv请求进行参数化 2. 卡号需要唯一: 方案:文中用jmeter的beanshell按时间戳加随机数生成 3. 请求参数中有一个参数,会根据相应的请求参数生成(文中的sign值),接口请求会验证sign是否和相应请求参数对应: 方案: 1. 文中将生成sign的源码打包放在jmeter的lib\ext\ 下, 2. 再用jmet

Java中List转数组,必须带个参数

public static void main(String[] args) { List<String> lst = new ArrayList(); lst.add("赵云 "); lst.add("张飞"); //X: String[] strA = (String[]) lst.toArray(); // List转数组:toArray(必须带个参数) String[] strA = (String[]) lst.toArray(new Stri

java之jar命令详解

1. JAR 文件包 JAR 文件就是 Java Archive File,顾名思意,它的应用是与 Java 息息相关的,是 Java 的一种文档格式.JAR 文件非常类似 ZIP 文件——准确的说,它就是 ZIP 文件,所以叫它文件包.JAR 文件与 ZIP 文件唯一的区别就是在 JAR 文件的内容中,包含了一个 META-INF/MANIFEST.MF 文件,这个文件是在生成 JAR 文件的时候自动创建的.举个例子,如果我们具有如下目录结构的一些文件: == -- test -- Test.

Gradle 笔记——Java构建入门

Gradle是一个通用的构建工具,通过它的构建脚本你可以构建任何你想要实现的东西,不过前提是你需要先写好构建脚本的代码.而大部分的项目,它们的构建流程基本是一样的,我们不必为每一个工程都编写它的构建代码,因为Gradle已经为我们提供了相应的插件.Gradle 本身自带了许多插件,而对于Gradle没有的插件,可以去github上看看有没有其他人实现,或自己实现.对Java项目而言,Gradle有Java插件,提供了像编译.测试.打包之类的功能. 这里简单介绍一下Java插件. Java插件为构

java生成jar包

Java编写的application程序是否能够最终形成一个类似于exe一样的可执行文件,难道就只能用命令行运行? 通常有两种,一种是制作一个可执行的JAR文件包,然后就可以像.chm文档一样双击运行了:而另一种是使用JET来进行编译.但是JET是要用钱买的,而且据说JET也不是能把所有的Java程序都编译成执行文件,性能也要打些折扣.所以,使用制作可执行JAR 文件包的方法就是最佳选择了,何况它还能保持Java的跨平台特性. 下面就来看看什么是JAR文件包吧: 1. JAR文件包 JAR文件就

快学Scala 第二课 (apply, if表达式,循环,函数的带名参数,可变长参数,异常)

apply方法是Scala中十分常见的方法,你可以把这种用法当做是()操作符的重载形式. 像以上这样伴生对象的apply方法是Scala中构建对象的常用手法,不再需要使用new. if 条件表达式的值就是跟在if或else之后的表达式的值,如果两者类型不同,选择各分支类型的公共超类型作为返回类型. if(x>1) 1 相当于 if(x>1) 1 else () 你可以把()当做是表示"无有用值"的占位符,将Unit当做Java的Void 如果你在写较长的语句,需要分行来写的

jar命令打包与java执行jar包

JAR命令详解 jar {ctxu}[vfm0M] [jar-文件] [manifest-文件] [-C 目录] 文件名 - 其中 {ctxu} 是 jar 命令的子命令,每次 jar 命令只能包含 ctxu 中的一个,它们分别表示: -c 创建新的 JAR 文件包 -t 列出 JAR 文件包的内容列表 -x 展开 JAR 文件包的指定文件或者所有文件 -u 更新已存在的 JAR 文件包 (添加文件到 JAR 文件包中) [vfm0M] 中的选项可以任选,也可以不选,它们是 jar 命令的选项参

Java对Jar文件的操作[转]

原文地址:http://www.cnblogs.com/mailingfeng/archive/2012/04/24/2122160.html 一些文件路径补充知识: URI uri = new URI("file:/D:/workspace-home/JavaDemo/conf/"); File dirFile = new File(uri);  String dirPath = System.getProperty("user.dir") + "\\c