无法通过 .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
。确保您的应用程序正在使用您想要的参数:
jvisualvm
。如果您在路径中正确设置了 java,只需在命令行输入“jvisualvm”即可。
打开启动到您的应用程序的 vm。
在“Overview”选项卡的“JVM Arguments”下检查。
应该设置你的 jvm 选项。
【讨论】:
我必须从命令提示符传递一些输入参数作为参数。所以实际上我的 bat 文件是 java -cp TA.jar com.myClass %1 %2 。在这种情况下,我应该根据您的方法将 JVM 参数放在哪里。 你可以在 -cp 之前设置它。编辑答案。以上是关于无法通过 .bat 文件设置 jvm 参数/参数(Xmx 和 Xms)的主要内容,如果未能解决你的问题,请参考以下文章
直通BAT必考题系列:深入详解JVM内存模型与JVM参数详细配置