从Windows命令行运行时如何请求JVM垃圾回收(而不是代码)

Tou*_*uko 15 java windows command-line garbage-collection

如何在外部请求Java垃圾收集,从JAR启动程序(使用Windows BAT)?

  • 从Java代码我可以做到 System.gc()
  • 运行JNLP发行版时,我从控制面板/ Java/...打开了这个"Java控制台",这个Java控制台提供了手动垃圾收集.

但是......当我从命令行/ bat运行jar时,java控制台似乎没有打开.用简短的谷歌搜索找不到帮助,也许有人在这里?

Ogr*_*m33 12

对于纯粹的命令行方法,您应该能够使用jcmd.我相信jcmd已经成为标准JDK安装的一部分,因为至少Java 1.7.命令将是这样的:

jcmd <process-id> GC.run
Run Code Online (Sandbox Code Playgroud)

您可以获取jcmd为特定进程提供的可用诊断命令列表,如下所示:

jcmd <process-id> help
Run Code Online (Sandbox Code Playgroud)


Pet*_*ter 10

您可以使用jconsole连接到本地运行的JVM - 这在GUI上提供了"Perform GC"按钮.

启动java进程时,您需要指定-Dcom.sun.management.jmxremote.


Tho*_*sen 5

如果您使用最新的java 6,您还可以使用jvisualvm来补充和扩展jconsole功能.它们都是非常有用的工具.