OutOfMemoryError: пространство кучи Java на удаленной машине Windows

Я разработал Java-программу, которую я развернул на удаленной машине, и на ней установлена ​​последняя версия jre1.8.0_60. Я разработал программу, используя jdk1.8.0_60. Я проверил программу на моей машине (память 6 ГБ-64 бита) и на компьютере моего коллеги (память 8 ГБ-64 бита), и программа запустилась без проблем, но когда я выполняю ту же программу на удаленной машине (память 4 ГБ-64 бита), она выдает эта ошибка:

   java.lang.OutOfMemoryError: Java heap space
   Dumping heap to java_pid3696.hprof ...
   Heap dump file created [217326007 bytes in 2.721 secs]
    Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
    at java.util.Arrays.copyOfRange(Unknown Source)
    at java.lang.String.<init>(Unknown Source)
    at java.lang.StringBuilder.toString(Unknown Source)
    at Invoice.GetInvoicesByStatusAndDate(Invoice.java:66)
    at ClientSAAJ.GetInvoicesByStatusAndDate(ClientSAAJ.java:75)
    at ClientSAAJ.main(ClientSAAJ.java:10)

Может быть, не хватает оперативной памяти или я выполняю какую-то настройку Java?

2 ответа

У вашей программы недостаточно памяти для работы. Вы можете установить максимальный размер кучи, используя опцию -Xmx jvm.

Например, если ваша программа представляет собой исполняемый файл jar, для выделения максимум 80 МБ вы можете использовать

$java -Xmx80m -jar executatable.jar

См. https://docs.oracle.com/javase/8/docs/technotes/tools/windows/java.html для получения дополнительной информации.

@curiousprgrammer, я установил -Xmx80m на -Xmx1028m, похоже, что проблема больше связана с jvm, чем с физической памятью.

Другие вопросы по тегам