我有一个随javapackager工具(版本8.0,Windows)打包的自包含Java应用程序。如何在命令行上的应用程序运行时(而不是在打包时)传递系统属性值?
The doc似乎没有解决这个问题。
我尝试了标准的Java方式,如:
mypackagedapp.exe -Dmyprop=myvalue
但似乎没有效果。
答案 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
是您想要的环境变量。
希望它有所帮助。