如何在命令行上将系统属性传递给自包含的Java应用程序

时间:2015-06-03 12:39:55

标签: java

我有一个随javapackager工具(版本8.0,Windows)打包的自包含Java应用程序。如何在命令行上的应用程序运行时(而不是在打包时)传递系统属性值?

The doc似乎没有解决这个问题。

我尝试了标准的Java方式,如:

mypackagedapp.exe -Dmyprop=myvalue

但似乎没有效果。

1 个答案:

答案 0 :(得分:0)

这是一个验证命令行中是否存在参数的代码。

查看下一个代码是否可以为您提供帮助。

public static void main(final String[] args) throws Exception {

    CommandLine line = validateArgs(args);
    if (null == line) {
        return;
    }
}

private static CommandLine validateArgs(String[] args) {
    Options flags = getArgs();
    CommandLineParser parser = new BasicParser();
    CommandLine line = null;

    try {
        // parse the command line arguments
        line = parser.parse(flags, args);
        if (line == null) {
            return null;
        }
    } catch (ParseException exp) {
        System.out.println(exp.getMessage());
    }
    return line;

}

static Options getArgs() {
    Options flags = new Options();
    Option dmyprop = OptionBuilder.withArgName("dmyprop")
            .hasArg()
            .withDescription("add description")
            .create("Dmyprop");
    flags.addOption(dmyprop);

    return flags;
}

为了获得环境变量,您需要使用:

        String env = System.getenv(option);

其中option是您想要的环境变量。

希望它有所帮助。