В системе нет ресурсов. Для получения подробной информации обратитесь к следующей трассировке стека. Ошибка Java.Lang.OutOfMemory с использованием java и mysql - PullRequest
2 голосов
/ 11 февраля 2010

Я получаю следующую ошибку. В системе нет ресурсов. Обращайтесь к трассировке стека для получения подробных сведений. Java.lang.OutOf Ошибка памяти с использованием java и mysql. Я создал 100 таблиц для своего проекта. случайных чисел я могу обновить значения в 25 таблиц, а не 100 таблиц. Пожалуйста, помогите мне исправить ошибку. Большое спасибо

Ответы [ 4 ]

4 голосов
/ 11 февраля 2010

Ошибка OutOfMemory означает, что вы выделяете больше памяти, чем позволяет ваша JVM. Первое, что нужно сделать, - это увеличить максимальный размер кучи, передав следующий аргумент java:

-Xmx1024m

Это увеличит размер кучи до 1 ГБ, а не по умолчанию 64 МБ. Отрегулируйте, как вам нравится.

Вы также захотите убедиться, что ваш код не имеет утечек памяти. Утечки памяти происходят, когда вы держите ссылки на объекты, которые вам больше не нужны.

2 голосов
/ 15 сентября 2016

Что-то подозрительное происходит.

Обычно, когда OutOfMemoryError происходит во время работы нашего приложения, сообщение выглядит следующим образом:

Exception in thread "main" java.lang.OutOfMemoryError
    at com.acme.GreatestProgramEver.main(Program.java:19)

В частности, нет сообщения, которое гласит: «Система исчерпала ресурсы. Обратитесь к следующей трассировке стека за подробностями», если только мы не отловим исключение и не сообщим о нем сами, убедившись в том, что выводится такое сообщение, правильный английский и все такое. И я подозреваю, что ОП не делает ничего подобного.

Однако я видел, как компилятор Java отображает именно это сообщение, когда ему не хватает памяти.

Это заставляет меня подозревать, что есть крошечная деталь, которую ОП забыл упомянуть:

Эта ошибка не возникает во время выполнения.

Эта ошибка возникает во время компиляции.

Итак, вашему компилятору нужно больше памяти.

Если вы используете IntelliJ IDEA:

Увеличение объема памяти, доступной для IntelliJ IDEA путем указания более высокого числа для -Xmx в bin\idea64.exe.vmoptions, поможет только внутреннему компилятору IDE при анализе исходных файлов при вводе, чтобы показать ошибки в редактор.

Чтобы увеличить объем памяти, доступной при фактическом построении, вам нужно открыть «Опции», перейти к «Сборка, выполнение, развертывание» -> «Компилятор» и указать большое число в «Кучи процесса сборки». размер (мегабайт): "

2000 следует делать это даже для большого проекта.

Примечание: все ответы, в которых упоминаются утечки памяти, неверны, поскольку эта проблема связана с компилятором, а не с вашим кодом. В то время, когда компилятор компилирует ваш код, ваш код едва ли существует, и тем более у него был шанс запустить, не говоря уже о выделении какой-либо памяти. Таким образом, ваш код утечки не имеет значения.

1 голос
/ 11 февраля 2010

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

0 голосов
/ 11 февраля 2010

Это может быть из-за утечки памяти. Выполнение следующих действий может предотвратить утечку памяти.

1 . All the statements and connections are closed after the use
2 . All the streams created are closed after use.
3 . All the close operations are done inside the finally block. 

Я не могу назвать все причины утечки памяти. Может быть, вышеупомянутые пункты могут помочь вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...