18

我在我的机器上运行一个 Eclipse 应用程序。我有两个疑问

  1. 我想知道如何检查 jvm 用于运行应用程序的默认堆大小。我正在使用 Windows 机器来运行 java 应用程序。我尝试通过以下方式检查默认堆大小

ControlPanel--->Programs--->JavaSetting--> JavaTab -->View Button ---> JavaRuntimeEnvironment settings window ---> Userstab --> RuntimeParameters下的Value

但是在我的系统中,没有定义运行时参数。是否有可以通过命令提示符执行的命令来检查我机器中的默认堆大小。

  1. 如何增加堆大小参数并从命令提示符运行 eclipse 插件应用程序。例如:要增加堆大小并执行 jar 文件,我们使用以下命令 java -Xms64m -jar MyApp.jar。我想知道如何设置堆参数并执行我的 java 应用程序,它是一个exe文件。我尝试使用以下命令执行,但命令提示符无法识别该命令

    java -Xms512m iepsd.exe

iepsd.exe我的 java 应用程序在哪里。

4

5 回答 5

31

一旦处理了所有命令行参数和默认值,您就可以使用-XX:+PrintFlagsFinal打印出大量内部选项到 JVM 的列表。-Xms选项对应InitialHeapSize,选项-Xmx对应MaxHeapSize。

要查找 JVM 在 Windows 上使用的默认最大堆大小,请运行:

javaw -XX:+PrintFlagsFinal | find "MaxHeapSize"

要查找默认的初始堆大小,请运行:

javaw -XX:+PrintFlagsFinal | find "InitialHeapSize"
于 2013-09-26T21:57:05.533 回答
8

尝试以下命令以获取详细结果

java -XX:+PrintFlagsFinal -version | findstr /i "HeapSize PermSize ThreadStackSize"

结果是

C:\Users\amar.magar>java -XX:+PrintFlagsFinal -version | findstr /i "HeapSize PermSize ThreadStackSize"
 intx CompilerThreadStackSize                   = 0                                   {pd product}
uintx ErgoHeapSizeLimit                         = 0                                   {product}
uintx HeapSizePerGCThread                       = 87241520                            {product}
uintx InitialHeapSize                          := 268435456                           {product}
uintx LargePageHeapSizeThreshold                = 134217728                           {product}
uintx MaxHeapSize                              := 4271898624                          {product}
 intx ThreadStackSize                           = 0                                   {pd product}
 intx VMThreadStackSize                         = 0                                   {pd product}

java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)
于 2017-04-11T06:59:51.077 回答
3

要回答以下查询vr3w3c9

提问者vr3w3c9:您好,感谢您的回复。我尝试javaw -XX:+PrintFlagsFinal | find "InitialHeapSize"在命令提示符下执行上述命令,但没有显示该值。我收到一条弹出消息,上面写着:

无法创建 java 虚拟机 – vr3w3c9 2013 年 9 月 27 日 4:54

答:在 Windows 机器上,请以管理员身份运行/打开命令提示符(Windows 命令处理器)并执行您提到的命令。您将得到如下所示的结果:

C:\windows\system32>javaw -XX:+PrintFlagsFinal | find "MaxHeapSize"

uintx MaxHeapSize                              := 2122317824      {product}

C:\windows\system32>javaw -XX:+PrintFlagsFinal | find "InitialHeapSize"

uintx InitialHeapSize                          := 132531136       {product}

这里,MaxHeapSize 和 InitialHeapSize 的单位字节

于 2015-10-10T10:26:31.687 回答
0

使用 JConsole。它随 JDK 一起提供。您将在相应的 bin 目录中找到它的可执行文件。

于 2013-09-26T12:34:11.093 回答
0

映射JDK,一般在“C:\Program Files (x86)\Java\jdk1.8.xx.xx\bin\jconsole”。打开 jconsole 应用程序,您现在可以监控和管理 JVM。

于 2020-01-24T03:57:44.330 回答