无法通过 .bat 文件设置 jvm 参数/参数(Xmx 和 Xms)

Posted

技术标签:

【中文标题】无法通过 .bat 文件设置 jvm 参数/参数(Xmx 和 Xms)【英文标题】:Unable to set jvm parameters/arguments (Xmx and Xms) through .bat file 【发布时间】:2013-01-16 00:56:38 【问题描述】:

通过将 VM 参数设置为 -Xmx1024m,我可以通过 eclipse 运行 java 程序 -Xms256M。现在我想通过 Windows 中的 .bat 文件运行相同的 java 程序(jar)。我在文件中设置JVM值如下

@echo off
set JAVA_OPTS="-Xmx1024m -Xms256m -XX:+HeapDumpOnOutOfMemoryError"
java -cp TA.jar com.myClass

但是当我通过批处理(Windows xp 中的 .bat)运行相同的程序时,它会抛出内存不足错误,我怀疑通过 .bat 文件进行的 JVM 设置不起作用。

有人可以帮忙吗?

【问题讨论】:

您是否尝试过简单地传递选项而不是设置环境变量? @Michael Myers 我不太明白你的意思..对不起.. 我的意思是 java -Xmx1024m -Xms256m -XX:+HeapDumpOnOutOfMemoryError -cp TA.jar com.myClass 而不是弄乱 JAVA_OPTS 可能被骗? ***.com/questions/2011311/… @MichaelMyers:当我尝试显示错误时 - 无法找到或加载主类 Xmx1024m 【参考方案1】:

应该是 _JAVA_OPTIONS 而不是 JAVA_OPTS。

【讨论】:

谢谢 Danyel .. 成功了.. 我使用了:set _JAVA_OPTIONS=-Xmx1024m -Xms256m -XX:+HeapDumpOnOutOfMemoryError 这应该是真正的答案【参考方案2】:

直接使用参数

java -Xmx1024m -Xms256m -XX:+HeapDumpOnOutOfMemoryError -cp TA.jar com.myClass

您无需将它们设置为JAVA_OPTIONS。确保您的应用程序正在使用您想要的参数:

打开java自带的jvisualvm。如果您在路径中正确设置了 java,只需在命令行输入“jvisualvm”即可。 打开启动到您的应用程序的 vm。 在“Overview”选项卡的“JVM Arguments”下检查。

应该设置你的 jvm 选项。

【讨论】:

我必须从命令提示符传递一些输入参数作为参数。所以实际上我的 bat 文件是 java -cp TA.jar com.myClass %1 %2 。在这种情况下,我应该根据您的方法将 JVM 参数放在哪里。 你可以在 -cp 之前设置它。编辑答案。

以上是关于无法通过 .bat 文件设置 jvm 参数/参数(Xmx 和 Xms)的主要内容,如果未能解决你的问题,请参考以下文章

JVM参数

直通BAT必考题系列:深入详解JVM内存模型与JVM参数详细配置

Tomcat windows下注册tomcat服务以及设置jvm参数

JVM调优之Tomcat启动参数配置及详解

bat怎么设置按回车建

直通BAT必考题系列:JVM性能调优的6大步骤,及关键调优参数详解