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

6

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

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

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


你尝试过直接传递选项而不是设置环境变量吗? - Michael Myers
@Michael Myers,我不太明白你的意思...抱歉... - IS_EV
2
我是指使用 java -Xmx1024m -Xms256m -XX:+HeapDumpOnOutOfMemoryError -cp TA.jar com.myClass 而不是处理 JAVA_OPTS。 - Michael Myers
1
可能是重复的问题?https://dev59.com/Z3I-5IYBdhLWcg3wHUdB - sharakan
@Bohemian - 你不应该删除你的答案。JAVA_OPTS 绝不会被 JVM 自动使用。 - Perception
显示剩余2条评论
2个回答

11

应该使用_JAVA_OPTIONS而不是JAVA_OPTS。


1
谢谢Danyel,它起作用了。我使用了:set _JAVA_OPTIONS=-Xmx1024m -Xms256m -XX:+HeapDumpOnOutOfMemoryError - IS_EV
这是真正的答案 - sam-6174

3

直接使用参数

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

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

  • 打开与Java一起提供的jvisualvm。如果您已正确设置了路径,请在命令行中键入“jvisualvm”。
  • 打开启动到您的应用程序的虚拟机。
  • 在“概述”选项卡下检查“JVM参数”。

应该在那里设置您的jvm选项。


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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接