Some sources声称我应该能够将-Xmx param提供给groovy,但是当它找不到-Xmx文件时,它只会给我java.io.FileNotFoundException
。 Other sources告诉我设置一个名为JAVA_OPTS
的变量,但我该怎么做?我怎么知道它是否有效?
答案 0 :(得分:20)
$ export JAVA_OPTS="$JAVA_OPTS -Xmx64M"
$ groovy
答案 1 :(得分:6)
更新:转到Groovy主文件夹并进入bin目录。在startGroovy.bat中,您可以将其设置为128MB到512MB,如下所示:
...
@rem set GROOVY_OPTS="-Xmx128m"
set GROOVY_OPTS="-Xmx512m"
...
答案 2 :(得分:3)
在Windows上找到另一种方法,无需修改JAVA_OPTS等。转到Groovy主文件夹并进入bin目录。如果你通过调用groovy.bat文件调用Groovy,如果你查看它,你会看到它依次运行startGroovy.bat。在startGroovy.bat中,在脚本的最后几行,你会发现这样的东西:
@rem Execute Groovy
"%JAVA_EXE%" %JAVA_OPTS% -classpath "%STARTER_CLASSPATH%" %STARTER_MAIN_CLASS% --main %CLASS% --conf "%STARTER_CONF%" --classpath "%CP%" %CMD_LINE_ARGS%
添加在%JAVA_OPTS%之后和-classpath之前需要分配的Xmx开关和内存,所以你有这样的东西:
@rem Execute Groovy
"%JAVA_EXE%" %JAVA_OPTS% -Xmx256M -classpath "%STARTER_CLASSPATH%" %STARTER_MAIN_CLASS% --main %CLASS% --conf "%STARTER_CONF%" --classpath "%CP%" %CMD_LINE_ARGS%
现在,当您运行Groovy时,-Xmx值将是它使用的已分配内存。这种方法的好处在于,每次想要更改堆大小时都不需要重新加载env变量,并且对使用Groovy正在使用的JVM所做的事情进行了细粒度的控制。