2017-08-03 86 views
2

我有一個啓動java項目的gradle任務。基本上是這樣的:Gradle:增加由gradle運行啓動的java進程的堆大小任務

gradle run -PmainClass=package.path.ServiceMain 

現在,我想增加由gradle啓動的java進程的堆,因爲標準堆大小太小。問題是,我只能成功增加gradle進程的大小,而不是gradle項目啓動的java進程的大小。 我檢查這個命令的堆大小在我的Java代碼:

Runtime.getRuntime().totalMemory() 

我測試了這樣的檢查,它是有效的使用它這樣。但它向我展示了Gradle始終以相同的堆大小啓動我的Java進程。

我嘗試了這些選項:

DEFAULT_JVM_OPTS='-Xmx1024m -Xms512m' 
GRADLE_OPTS='-Xmx1024m -Xms512m' 
JAVA_OPTS='-Xmx1024m -Xms512m' 

沒有成功。

我也試過這樣:

gradle run -PmainClass=package.path.ServiceMain -DXmx1024m -DXms512m 

儘管如此,沒有成功。

當然,我已經在網上搜索過,但我發現只有一些提示說我可以修改build.gradle文件。不幸的是,這不是我想要/可以。

我需要通過gradle運行任務(由於實際的項目結構)啓動它時,在命令行上爲我的java程序指定java堆大小。

在此先感謝您的支持。任何幫助表示讚賞。

+3

這是不可能的,而無需修改'build.gradle'腳本。 – Opal

+1

如果你放寬你對'build.gradle'的要求,你可以在這裏找到很好的解決方案:https://stackoverflow.com/questions/23689054/problems-passing-system-properties-and-parameters-when-running-java-class -via-gr –

+0

感謝提示charlie_pl,但是從我的理解,這篇文章是關於程序參數,而不是JVM參數。或者我錯過了什麼? –

回答

2

As @Opal上面的狀態是不可能

我能找到(現在)最簡單的/最簡單的辦法是這個小片段添加到build.gradle文件:

tasks.withType(JavaExec) { 
    jvmArgs = ['-Xms512m', '-Xmx512m'] 
}