2015-04-14 2 views
7

Я пытаюсь обновить IntelliJ IDEA от сборника 141.177 до 141.178. Когда обновленные загрузки всех необходимых файлов, и запускает обновление, я получаю эту ошибку:Получение ошибки OutOfMemory при попытке обновить мой Intellij

Temp. directory: /tmp 

java.lang.OutOfMemoryError: Java heap space 
    at ie.wombat.jbdiff.JBPatch.bspatch(JBPatch.java:91) 
    at com.intellij.updater.BaseUpdateAction.applyDiff(BaseUpdateAction.java:112) 
    at com.intellij.updater.UpdateAction.doApply(UpdateAction.java:44) 
    at com.intellij.updater.PatchAction.apply(PatchAction.java:184) 
    at com.intellij.updater.Patch$3.forEach(Patch.java:308) 
    at com.intellij.updater.Patch.forEach(Patch.java:360) 
    at com.intellij.updater.Patch.apply(Patch.java:303) 
    at com.intellij.updater.PatchFileCreator.apply(PatchFileCreator.java:84) 
    at com.intellij.updater.PatchFileCreator.apply(PatchFileCreator.java:75) 
    at com.intellij.updater.Runner.doInstall(Runner.java:295) 
    at com.intellij.updater.Runner.access$000(Runner.java:18) 
    at com.intellij.updater.Runner$2.execute(Runner.java:261) 
    at com.intellij.updater.SwingUpdaterUI$5.run(SwingUpdaterUI.java:191) 
    at java.lang.Thread.run(Thread.java:745) 

Папка /tmp должна быть на моем корневом разделе, который имеет 20GiB размера, и в настоящее время она до сих пор о 8GiB осталось , Поэтому я действительно не понимаю, что проблема может быть здесь прямо сейчас. Плюс я не уверен в части ОЗУ, моя система использует 40% моей ОЗУ, когда я делаю обновление.

+3

https://youtrack.jetbrains.com/issue/IDEA-139036 – Meo

+0

Кажется, что каждый из них работал случайным образом, когда снова пытался ... Не работает для меня. – Kaspar

+0

Это ошибка памяти, а не ошибка на диске. Обычно есть несколько способов увеличить размер jvm, но я не уверен, как это работает с программой обновления. Длинный выстрел, может быть - Каковы ваши настройки JAVA_OPTS, если вообще? – vikingsteve

ответ

8

Прочитать JetBrains documentation & this answer о том, как увеличить максимальный размер кучи для IntelliJ.

Установить -Xmx2048m в idea.vmoptions (32-разрядная версия) или idea64.vmoptions (64-разрядная версия) и скопировать его в соответствующее место в соответствии с документацией, упомянутой выше.

Я бы тоже сделал File > Invalidate Caches/Restart > Invalidate and Restart, просто чтобы убедиться, что изменения приняты (возможно, не обязательно, но на всякий случай).

Я получил ту же самую трассировку стека сегодня, пытаясь обновить с 14.1.1 до 14.1.2 через автоматический обновитель. В OS X я решил это, переименовав ~/Library/Preferences/IdeaIC14/idea.vmoptions в idea64.vmoptions. Я уже установил -Xmx2048m в этом файле, но, видимо, он не читался, пока я не переименовал его правильно.

Также см. Вопрос YouTrack IDEA-139036 (спасибо @Meo).

13

Я попал в эту же проблему. Проблема в том, что idea.vmoptions изменяет память для основного процесса intellij, но не процесс обновления. В моем случае для процесса обновления было выделено только 500 м.

Я прошел мимо проблемы, оставив окно обновления открытым после того, как оно получило ошибку. Затем я побежал ps -Af | grep java (я бегу linux). Это показало мне командную строку для процесса обновления. Я скопировал его и изменил -Xmx500m на -Xmx1024m. Затем я запустил модифицированную командную строку на другой консоли, после того как она была завершена. Я вышел из исходного окна обновления, и все было хорошо.

+0

Это отлично поработало для меня (с использованием Linux). Ключ должен оставить окно ошибки открытым, а затем запустить измененную команду. Благодаря! – Minibiti