在批处理文件中将 vm 参数传递给 java 程序

Passing vm arguments to java program in batch file

我正在尝试从批处理文件中 运行 一个 java 程序,我需要根据某些条件传递参数。根据条件,传递给 java 命令的参数数量不同。 下面是我试过的代码。

@echo off
set vmargs1 = "-Xms512m -Xmx512m -XX:MaxPermSize=256M -XX:MinHeapFreeRatio=5 -XX:MaxHeapFreeRatio=25"
set vmargs2 = "-Xms512m -Xmx512m -XX:MaxPermSize=256M"

IF condition1 (
java %vmargs1% MyJavaClass
)
IF condition2 (
java %vmargs2% MyJavaClass
)

对于条件 1,我需要将 vmargs1 作为虚拟机参数传递给启动 java 程序。对于条件 2,我需要将 vmargs2 作为启动 java 程序的虚拟机参数传递。 我在设置 vmargs1 和 vmargs2 的值时遇到问题。使用上面的代码,它不会设置这些值。 在调用 java 程序时使用 %vmargs1% 和 %vmargs2% 是正确的还是有其他方法?如果是这样请建议。

删除 set 命令和双引号中的空格。

set vmargs1=-Xms512m -Xmx512m -XX:MaxPermSize=256M -XX:MinHeapFreeRatio=5 -XX:MaxHeapFreeRatio=25
set vmargs2=-Xms512m -Xmx512m -XX:MaxPermSize=256M