我正在尝试从批处理文件中读取变量,以便以后在批处理脚本中使用,这是一个Java启动程序 . 理想情况下,我希望在所有平台(Unix,Windows)上使用相同的设置文件格式,并且也是有效的Java Properties文件 . 也就是说,它应该是这样的:
setting1=Value1
setting2=Value2
...
是否有可能像在Unix shell脚本中那样读取这些值?可能应该看起来像这样:
READ settingsfile.xy
java -Dsetting1=%setting1% ...
我知道这可能是 SET setting1=Value1
,但我真的宁愿在所有平台上使用相同的文件格式 .
澄清一下:我需要在命令行/批处理环境中执行此操作,因为我还需要设置无法在JVM中更改的参数,如-Xmx或-classpath .
4 回答
您可以在批处理文件中执行此操作,如下所示:
这将读取包含“SETTING1 = VALUE1”等字符串的文本文件,并调用SET将其设置为环境变量 .
setlocal / endlocal用于将环境变量的范围限制为批处理文件的执行 .
CMD命令处理器实际上非常强大,但具有相当的拜占庭语法 .
您可以将属性文件作为参数传递给Java程序(稍后可能会启动主程序) . 然后从多平台范例中受益 .
明智的做法是只从属性文件中导入特定的变量(你提前知道的),在这种情况下,我建议使用如下函数:
call:parsePropertiesFile props.properties setting1 setting2
将调用哪个来设置变量setting1和setting2您还可以从Java程序中访问OS的环境变量: