簡體   English   中英

在運行時設置JVM參數

[英]Setting JVM parameters at runtime

在JVM已經加載(運行)之后,是否可以更改/修改/添加VM參數? 如果是這樣,我該怎么辦?

對於您通過命令行上的-D標志設置的屬性,您需要System.setProperty 例如:

System.setProperty("propname", "hello world");

// ... later ...
String value = System.getProperty("propname");

更新:

您無法動態啟用調試,但可以在啟動時啟用調試,但稍后可以附加調試器。 使用以下命令,您可以偵聽端口12345並立即啟動程序(通過suspend=n )。 然后,如果/需要,可以附加調試器,分離調試器,稍后再次附加等。

-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=12345

當然,即使未附加調試器,這也會損害性能,因此它僅適用於開發/測試代碼,而不適用於生產。 為此,您需要記錄,例如log4j

簡短的回答是您無法在運行時更改VM參數。 Runtime類確實暴露了一些選項,如max memory。 諸如max memory之類的主要參數應僅由管理類型設置,以允許在機器上存在多個JVM時管理資源。 允許一個JVM變得貪婪並且要求比分配的更多和更多將會殺死這個約束。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM