在JVM已經加載(運行)之後,是否可以更改/修改/添加VM參數?如果是這樣,我該怎麼做?在運行時設置JVM參數
18
A
回答
34
對於通過命令行上的-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。
3
一個簡短的答案是,您不能在運行時更改虛擬機參數。運行時類確實暴露了一些選項,如最大內存。諸如最大內存的主要參數應該只能由一個管理員類型來設置,以允許在機器上存在多個JVM時管理資源。如果允許一個JVM變得貪婪,並且要求分配的許多和更多資源將會消除這個約束。
相關問題
- 1. 運行時設置JMX的JVM參數
- 2. 在運行時修改JVM參數
- 3. 在運行時設置佈局參數
- 4. 設置Ruby運行時配置參數?
- 5. 如何設置JVM參數
- 6. 運行npm時設置節點參數
- 7. 在Shell腳本中設置JVM參數
- 8. 設置運行參數?
- 9. Nunit參數化的TestFixtures參數在運行時設置?
- 10. Java - 在運行時獲取JVM內存設置
- 11. 如何設置CloudBees中的JVM參數
- 12. 運行與型動物JVM參數
- 13. 在運行時設置數組維數
- 14. 通過jvm參數進行logback配置
- 15. 通過JVM參數進行log4j配置?
- 16. 如何僅在夜間設置參數時運行測試?
- 17. 在運行時設置通用類的類型和參數
- 18. 在服務器上運行時爲類設置參數
- 19. 在運行時設置ConnectionString
- 20. 在運行時設置String.Format
- 21. 在運行時設置UICollectionViewCellSize
- 22. 在運行時設置XAML?
- 23. 在運行時設置數據源值
- 24. 在運行時設置NHibernate數據庫
- 25. 作爲服務運行時,將JVM參數傳遞給Tomcat?
- 26. 在運行時確定JVM可執行文件的位置
- 27. Wildfly配置文件運行時參數
- 28. 設置運行時間參數全系統
- 29. Java/Java EE動態設置運行時參數
- 30. 如何從NUnit GUI設置運行時參數?
怎麼樣-X非標準選項?尤其是-Xdebug和其他一些調試標誌? – Guy 2009-11-18 07:23:31
我添加了一個帶有調試信息的更新。 – 2009-11-18 07:51:57
謝謝哈羅德! – Guy 2009-11-18 08:02:53