我有一个使用-D系统属性创建的Java应用程序。我遇到了一些问题需要正确翻译。JVM系统属性 - 如何看待字符串文字
在我的本地计算机上,我正在使用Windows IntelliJ IDEA的IDE和我通过IDE进入-D系统属性,像这样在我的测试环境(本地主机):
-Dproperty={\"prop1\":\"val1\",\"prop2\":\"val2\"}
我转义双引号,因为它们需要分开字符串文字。上述属性起作用,并且包括花括号的整个值被存储为字符串文字。
当我们将这个应用程序部署到我们的Linux云环境时,就会出现这个问题。我认为体系结构的差异导致系统属性无法正确读取。在bash中,我找到所有-D系统属性的进程ID并执行ps -fwwp [processId]
命令。我看到上面的属性被分成一堆较小的属性,这些属性如下所示:
-Dproperty=prop1:val1
-Dproperty=prop2:val2
-Dproperty=prop3:val3
等等
这导致我的应用程序,它使用这个属性的一部分失败。我试着做了一堆转义方法,但都没有工作。
我怎么能以这样的方式,该值作为字符串字面{"prop1":"val1","prop2":"val2"}
谢谢!在我们的Linux云环境中,第一个选项不起作用。它仍然将它们分成键:值对。第二个选项(围绕单引号的整个值)为我工作。每当我部署到Linux环境时,我都必须记住更改此特定属性的值。 – bscott