Помогите настроить размер Java VM - PullRequest
1 голос
/ 01 сентября 2009

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

*Exception in thread "Image Fetcher 0" java.lang.OutOfMemoryError: Java heap space*

Я пытался следовать различным инструкциям, которые я нашел в Интернете, и наконец создал этот ярлык для Eclipse со следующей командной строкой:

"C:\Documents and Settings\Dror Well\Desktop\temp\Eclipse\eclipse\eclipse\eclipse.exe" 
 -vmargs -vm "C:\Program Files\Java\jdk1.6.0_14\bin" 
 \"C:\Program Files\Java\jre6\bin\javaw.exe" -Xms256m -Xmx1024m

Чего мне не хватает? Как это сделать?

Ответы [ 4 ]

5 голосов
/ 01 сентября 2009

В этой строке вы задали аргументы виртуальной машины для процесса Java, в котором запускается Eclipse. Для вашего приложения вам нужно установить параметр -Xmx512m (или какой бы большой он не был) для приложения, которое вы используете. бегут. Это можно сделать в диалоговом окне «Выполнить».

В меню «Выполнить» выберите «Открыть диалоговое окно выполнения». Там вы должны увидеть слева список программ. Если вы уже запустили его один раз, ваш должен быть указан в узле Java Applications. Выберите его и на правой панели перейдите на вкладку Аргументы. Там будет текстовое поле Аргументы VM. Введите свой аргумент -Xmx.

0 голосов
/ 01 сентября 2009

Для Eclipse вам необходимо обновить файл eclipse.ini, чтобы задать любые свойства JVM. Полная информация о том, где находится файл и как его обновить по этой ссылке .

0 голосов
/ 01 сентября 2009

Поскольку изображения могут быть довольно большими, вы должны рассмотреть следующие варианты:

  1. Выделите больше памяти для исполняемого файла Java, который будет запущен Eclipse (но не сам Eclipse). Это можно сделать с помощью аргументов виртуальной машины для конфигурации времени выполнения , которую вы используете для запуска приложения в Eclipse.
  2. Переключитесь на параллельный сборщик мусора, используя флаг -XX: + UseParallelGC для приложения (опять же, это не для Eclipse). Это не поможет, если у вас есть большие объекты, которые хранятся в памяти в течение длительного периода времени.
0 голосов
/ 01 сентября 2009

Параметры должны быть переданы в JVM, на которой выполняется ваше приложение, а не в Eclipse. Попробуйте просмотреть настройки отладки в Eclipse, там должно быть место для параметров -Xmx и -Xms.

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