为特定 JVM 设置系统属性

我有一个在单独的 JVM 中执行批处理文件的 Java 程序。现在设置 System.setProperty() 在批处理文件中没有任何影响。

System.setProperty(key,value);
Process shutdownProcess = Runtime.getRuntime().exec("ABC.bat");

这个过程在一个单独的 JVM 中运行。在bat文件中,我正在执行一个java程序,我在那里访问-System.getProperty(key),但我在这里得到空值,那么如何从java设置该特定JVM中的系统属性,在执行bat文件时是否可以传递任何参数或可以传递什么完毕


慕雪6442864
浏览 200回答 1
1回答

子衿沉夜

有了Runtime.getRuntime您正在访问的环境(主机,操作系统,...),其中JVM正在执行。随着exec您在这样的环境中启动命令。这意味着在 Windows 上的命令提示符或*nix 上的shell 中执行该命令。您在命令提示符/ shell 中没有这样的“JVM 系统属性”概念。如果您需要将参数从 JVM 传递到 bat 文件,一种方法是使用命令提示符标准语法,并在 bat 文件中进行解析。类似于以下内容。Runtime.getRuntime().exec("ABC.bat " + key + " " + value)在您的 bat 文件中,您将能够使用以下内容检索键和值。set key=%1 set value=%2
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java