2009-09-01 2 views
1

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

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

+2

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

ответ

0

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

5

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

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

+0

, чем он скрывался там все это время. G-d, как я ненавижу эти небольшие настройки конфигурации, особенно в новых средах. Спасибо вам большое :) Хороший день =] – 2009-09-01 04:11:00

+0

@vondip: не могли бы вы принять этот ответ? –

+1

Что касается командной строки, '-vm' - это аргумент, указывающий на пусковую установку, где можно найти java, она должна появиться до -vmargs. Все после -vmargs являются аргументами, которые передаются в jvm. Также нет смысла перечислять два пути vm, в лучшем случае второй будет просто проигнорирован. –

0

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

  1. Выделяет больше памяти для исполняемого файла Java, который будет запущен с помощью Eclipse (не Затмение себя). Это можно сделать с помощью the VM arguments for the runtime configuration, который вы используете для запуска приложения в Eclipse.
  2. Переключитесь на параллельный сборщик мусора, используя флаг -XX: + UseParallelGC для приложения (опять же, это не для Eclipse). Это не поможет, если у вас есть большие объекты, сохраненные в памяти в течение длительного периода времени.
-1

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

+0

Оператор задает вопрос о том, как установить память для приложения, запущенного Eclipse, а не памяти самого процесса Eclipse. Свойства jvm Eclipse также могут быть установлены в командной строке, например eclipse.exe -Xmx .... –

+0

Убивает, что я совершенно не прав. Это то, что я получаю от работы над вещами так поздно. – Carnell

Смежные вопросы