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