Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在命令行上将系统属性传递给自包含的Java应用程序_Java - Fatal编程技术网

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

如何在命令行上将系统属性传递给自包含的Java应用程序,java,Java,我有一个与该工具打包的自包含Java应用程序(版本8.0,Windows)。如何在应用程序运行时(而不是在包时)在命令行上传递it系统属性值 似乎没有解决这个问题 我尝试了标准Java方式,如: mypackagedapp.exe -Dmyprop=myvalue 但这似乎没有效果。下面是一段代码,用于验证命令行中是否存在参数 看看下一个代码是否可以帮助您 public static void main(final String[] args) throws Exception {

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

似乎没有解决这个问题

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

mypackagedapp.exe -Dmyprop=myvalue

但这似乎没有效果。

下面是一段代码,用于验证命令行中是否存在参数

看看下一个代码是否可以帮助您

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);
其中,
选项
是所需的环境变量


希望有帮助。

下面是一段代码,用于验证命令行中是否存在参数

看看下一个代码是否可以帮助您

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);
其中,
选项
是所需的环境变量


希望有帮助。

你说的“似乎没有效果”是什么意思?如何检索该属性?此外,我强烈怀疑标准Java方式是否包括运行
exe
-file.System.getProperty(“myprop”)返回null。当我使用java.exe-Dmyprop=myvalue-jar调用代码时。。。它按预期返回“myvalue”错误地理解了您的问题。。参见@Tobb:我发布的相同链接??它如何解决我的问题?你能详细说明一下吗?FWIW,我刚刚发布了一篇关于通过JavaFX自包含应用程序启动器向JVM传递参数的文章,其中包括系统属性。你说的“似乎没有效果”是什么意思?如何检索该属性?此外,我强烈怀疑标准Java方式是否包括运行
exe
-file.System.getProperty(“myprop”)返回null。当我使用java.exe-Dmyprop=myvalue-jar调用代码时。。。它按预期返回“myvalue”错误地理解了您的问题。。参见@Tobb:我发布的相同链接??它如何解决我的问题?你能详细说明一下吗?FWIW,我刚刚发布了一篇关于通过JavaFX自包含应用程序启动器向JVM传递参数的文章,其中包括系统属性。你说的“似乎没有效果”是什么意思?如何检索该属性?此外,我强烈怀疑标准Java方式是否包括运行
exe
-file.System.getProperty(“myprop”)返回null。当我使用java.exe-Dmyprop=myvalue-jar调用代码时。。。它按预期返回“myvalue”错误地理解了您的问题。。参见@Tobb:我发布的相同链接??它如何解决我的问题?你能详细解释一下吗?FWIW,我刚刚发布了一篇关于通过JavaFX自足应用程序启动器向JVM传递参数的文章,其中包括系统属性。你能解释一下你的代码中发生了什么吗?@Igor:谢谢!我知道我可以编写自己的解析来设置系统属性。我很难相信,一旦你将应用打包成独立的应用程序,Java就会停止为你这样做。所以我想我希望得到一个答案,要么说明Java在自包含应用程序中是如何做到这一点的,要么指出这是自包含应用程序的一个文档限制。你能解释一下你的代码中发生了什么吗?@Igor:谢谢!我知道我可以编写自己的解析来设置系统属性。我很难相信,一旦你将应用打包成独立的应用程序,Java就会停止为你这样做。所以我想我希望得到一个答案,要么说明Java在自包含应用程序中是如何做到这一点的,要么指出这是自包含应用程序的一个文档限制。你能解释一下你的代码中发生了什么吗?@Igor:谢谢!我知道我可以编写自己的解析来设置系统属性。我很难相信,一旦你将应用打包成独立的应用程序,Java就会停止为你这样做。因此,我想我希望找到一个答案,要么说明Java在自包含应用程序中是如何做到这一点的,要么指出这是自包含应用程序的一个文档限制。