Java堆空间XMX XMS参数被忽略
-
29-09-2019 - |
题
我有一个.jar显然会消耗过多的内存,并抛出一个例外的“ Java Heap Space”(或类似的东西)。
因此,我尝试通过这样的CMD运行.jar:
C:\MyFolder>javaw -jar MyJar.jar -Xms64m -Xmx128m
那无法解决问题。相同的错误。现在,当我在Windows任务管理器中选中“流程”选项卡时,我注意到JAR的过程的内存要比我要求的要少得多(与没有参数的情况相同)。
为什么忽略参数?
另外,我认为在该过程达到100MB内存使用情况的时间时,例外是抛出的。 GC是否可能试图释放内存,这就是导致问题的原因?我可以为GC设置任何参数以防止这种情况吗?
谢谢,马尔基:)
解决方案
命令
javaw -jar MyJar.jar -Xms64m -Xmx128m
将使用-XMS ...和-XMX ...作为“ Main(String [Args)”方法的参数。
参数 到 JVM必须在-jar部分之前通过:
javaw -Xms64m -Xmx128m -jar MyJar.jar
当我们执行“ Java -version”时,可以看到这样的原因:
Usage: java [-options] class [args...]
(to execute a class)
or java [-options] -jar jarfile [args...]
(to execute a jar file)
您的参数-xms ...和-xmx ...是JVM的选项。
不隶属于 StackOverflow