在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