我有一個使用-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