我有一个gradle任务,它启动一个java项目.基本上是这样的:
gradle run -PmainClass=package.path.ServiceMain
Run Code Online (Sandbox Code Playgroud)
现在,我想增加gradle启动的java进程的堆,因为标准堆大小太小.问题是我成功只增加了gradle进程的大小,而不是gradle项目启动的java进程的大小.我在Java代码中使用此命令检查堆大小:
Runtime.getRuntime().totalMemory()
Run Code Online (Sandbox Code Playgroud)
我测试了这个检查,这样使用它是有效的.但它告诉我,gradle始终以相同的堆大小启动我的Java进程.
我试验了这些选项:
DEFAULT_JVM_OPTS='-Xmx1024m -Xms512m'
GRADLE_OPTS='-Xmx1024m -Xms512m'
JAVA_OPTS='-Xmx1024m -Xms512m'
Run Code Online (Sandbox Code Playgroud)
没有成功.
我也试过这个:
gradle run -PmainClass=package.path.ServiceMain -DXmx1024m -DXms512m
Run Code Online (Sandbox Code Playgroud)
仍然没有成功.
当然,我已经在网上搜索了但我发现只有一些提示说我可以修改build.gradle文件.不幸的是,这不是我想要/可以的.
我需要在由gradle run任务启动时在命令行上为我的java程序指定java堆大小(由于实际的项目结构).
在此先感谢您的支持.任何帮助表示赞赏.
正如@Opal在上面说的那样是不可能的.
我能找到的最简单/最简单的替代方法(现在)是将这个小片段添加到build.gradle文件中:
tasks.withType(JavaExec) {
    jvmArgs = ['-Xms512m', '-Xmx512m']
}
Run Code Online (Sandbox Code Playgroud)
        在 Linux 中使用此命令:export _JAVA_OPTIONS="-Xms4000m -Xmx8000m"其中值 4000 和 8000 可以更改。使用 _JAVA_OPTIONS 代替 JAVA_OPTS
旧答案:您可以通过编辑 $GRADLE_USER_HOME/.gradle/gradle.properties (默认为 ~/.gradle/gradle.properties)来设置或增加用于 Gradle 构建和 Gradle Daemon 的内存使用限制(或其他 JVM 参数),以及设置 org.gradle.jvmargs:
org.gradle.jvmargs=-Xmx2024m -XX:MaxPermSize=512m
Run Code Online (Sandbox Code Playgroud)
来源:https ://riptutorial.com/gradle/example/11911/tuning-jvm-memory-usage-parameters-for-gradle
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           6062 次  |  
        
|   最近记录:  |