Java 程式運行良好,但測驗失敗并顯示以下訊息:
Caused by: java.lang.OutOfMemoryError: Java heap space
at java.base/java.util.BitSet.initWords(BitSet.java:167)
at java.base/java.util.BitSet.<init>(BitSet.java:162)
at lv.id.jc.ipv4.IntSet.<init>(IntSet.java:6)
at lv.id.jc.ipv4.IntSetTest.$spock_initializeFields(IntSetTest.groovy:11)
我已經設定GROOVY_OPTS了,-Xmx1g但它沒有幫助。
我使用測驗框架Spock 2.0,被測java代碼是
public class IntSet {
private final BitSet[] storage = {new BitSet(Integer.MAX_VALUE), new BitSet(Integer.MAX_VALUE)};
public void add(int i) {
if (i >= 0) {
storage[0].set(i);
} else {
storage[1].set(- i);
}
}
public long size() {
return (long) storage[0].cardinality() storage[1].cardinality();
}
}
我在 Spock Framework 檔案中找不到如何解決這樣的問題。我使用 IntelliJ 和 gradle。
我將不勝感激任何想法。
補充資料。我在 gradlew 檔案中設定屬性:
DEFAULT_JVM_OPTS='"-Xmx2048m" "-Xms128m"'
我使用以下命令運行程式:
./gradlew run -q --console=plain --args="ip_addresses"
它作業正常并列印正確的結果。但是,當我使用命令運行測驗時:
./gradlew test
然后我收到一條錯誤訊息:
> Task :test FAILED
FAILURE: Build failed with an exception.
HTML報告說:
org.gradle.internal.exceptions.DefaultMultiCauseException: Multiple Failures (2 failures)
java.lang.OutOfMemoryError: Java heap space
java.lang.OutOfMemoryError: Java heap space
uj5u.com熱心網友回復:
通過在 build.gradle 檔案中添加配置解決:
test {
minHeapSize = "800m"
maxHeapSize = "2000m"
...
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/488718.html
