Каковы лучшие настройки JVM для Eclipse? [закрытый]

Что такое NullPointerException?

Хорошим местом для начала является JavaDocs . Они охватывают это:

Брошено, когда приложение пытается использовать null в случае, когда требуется объект. К ним относятся:

  • Вызов метода экземпляра нулевого объекта.
  • Доступ или изменение поля нулевого объекта.
  • Выполнение длины null, как если бы это был массив.
  • Доступ или изменение слотов с нулевым значением, как если бы это был массив.
  • Бросать нуль, как если бы это было значение Throwable.

Приложения должны бросать экземпляры этого класса для указания других незаконных видов использования нулевого объекта.

blockquote>

Также, если вы попытаетесь использовать нулевую ссылку с synchronized, который также выдаст это исключение, за JLS :

SynchronizedStatement:
    synchronized ( Expression ) Block
  • В противном случае, если значение выражения равно null, NullPointerException.
blockquote>

Как это исправить?

Итак, у вас есть NullPointerException. Как вы это исправите? Возьмем простой пример, который выдает NullPointerException:

public class Printer {
    private String name;

    public void setName(String name) {
        this.name = name;
    }

    public void print() {
        printString(name);
    }

    private void printString(String s) {
        System.out.println(s + " (" + s.length() + ")");
    }

    public static void main(String[] args) {
        Printer printer = new Printer();
        printer.print();
    }
}

Идентифицирует нулевые значения

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

Exception in thread "main" java.lang.NullPointerException
    at Printer.printString(Printer.java:13)
    at Printer.print(Printer.java:9)
    at Printer.main(Printer.java:19)

Здесь мы видим, что исключение выбрано в строке 13 (в методе printString). Посмотрите на строку и проверьте, какие значения равны нулю, добавив протоколирующие операторы или используя отладчик . Мы обнаруживаем, что s имеет значение null, а вызов метода length на него вызывает исключение. Мы видим, что программа перестает бросать исключение, когда s.length() удаляется из метода.

Трассировка, где эти значения взяты из

Затем проверьте, откуда это значение. Следуя вызовам метода, мы видим, что s передается с printString(name) в методе print(), а this.name - null.

Трассировка, где эти значения должны быть установлены

Где установлен this.name? В методе setName(String). С некоторой дополнительной отладкой мы видим, что этот метод вообще не вызывается. Если этот метод был вызван, обязательно проверьте порядок , что эти методы вызывают, а метод set не будет называться после методом печати. ​​

Этого достаточно, чтобы дать нам решение: добавить вызов printer.setName() перед вызовом printer.print().

Другие исправления

Переменная может иметь значение по умолчанию setName может помешать ему установить значение null):

private String name = "";

Либо метод print, либо printString может проверить значение null например:

printString((name == null) ? "" : name);

Или вы можете создать класс, чтобы name всегда имел ненулевое значение :

public class Printer {
    private final String name;

    public Printer(String name) {
        this.name = Objects.requireNonNull(name);
    }

    public void print() {
        printString(name);
    }

    private void printString(String s) {
        System.out.println(s + " (" + s.length() + ")");
    }

    public static void main(String[] args) {
        Printer printer = new Printer("123");
        printer.print();
    }
}

См. также:

Я все еще не могу найти проблему

Если вы попытались отладить проблему и до сих пор не имеете решения, вы можете отправить вопрос для получения дополнительной справки, но не забудьте включить то, что вы пробовали до сих пор. Как минимум, включите stacktrace в вопрос и отметьте важные номера строк в коде. Также попробуйте сначала упростить код (см. SSCCE ).

316
задан Craig Angus 22 April 2012 в 23:40
поделиться

13 ответов

Опять это время года: "eclipse.ini take 3" настройки наносят ответный удар!

Настройки Eclipse Helios 3.6 и 3.6.x

alt text http://www.eclipse.org/home/promotions/friends-helios/helios.png

После настроек для Eclipse Ganymede 3.4.x и Eclipse Galileo 3.5.x, здесь подробно рассматривается "оптимизированный" eclipse. ini файл настроек для Eclipse Helios 3.6.x:

(под "оптимизированным" я подразумеваю возможность запуска полноценного Eclipse на нашей дрянной рабочей станции на работе, старом P4 2002 года с 2Go RAM и XPSp3. Но я также тестировал эти же настройки на Windows7)

Eclipse.ini

alt text

ВНИМАНИЕ: для не-Windows платформы используйте проприетарную опцию Sun -XX:MaxPermSize вместо проприетарной опции Eclipse --launcher.XXMaxPermSize.
То есть: если только вы не используете последнюю версию jdk6u21 build 7. См. раздел Oracle ниже.

-data
../../workspace
-showlocation
-showsplash
org.eclipse.platform
--launcher.defaultAction
openFile
-vm
C:/Prog/Java/jdk1.6.0_21/jre/bin/server/jvm.dll
-vmargs
-Dosgi.requiredJavaVersion=1.6
-Declipse.p2.unsignedPolicy=allow
-Xms128m
-Xmx384m
-Xss4m
-XX:PermSize=128m
-XX:MaxPermSize=384m
-XX:CompileThreshold=5
-XX:MaxGCPauseMillis=10
-XX:MaxHeapFreeRatio=70
-XX:+CMSIncrementalPacing
-XX:+UnlockExperimentalVMOptions
-XX:+UseG1GC
-XX:+UseFastAccessorMethods
-Dcom.sun.management.jmxremote
-Dorg.eclipse.equinox.p2.reconciler.dropins.directory=C:/Prog/Java/eclipse_addons

Примечание:
Адаптируйте p2.reconciler.dropins.directory к внешнему каталогу по вашему выбору.
См. этот ответ SO. Идея заключается в том, чтобы иметь возможность забрасывать новые плагины в каталог независимо от любой установки Eclipse.

В следующих разделах подробно описано, что находится в этом eclipse.ini файле.


Ужасная Oracle JVM 1.6u21 (pre build 7) и сбои Eclipse

Andrew Niefer предупредил меня об этой ситуации и написал сообщение в блоге о нестандартном аргументе vm (-XX:MaxPermSize), из-за которого vms других производителей может вообще не запускаться.
Но версия этой опции для eclipse (--launcher.XXMaxPermSize) не работает с новым JDK (6u21, если только вы не используете 6u21 build 7, см. ниже).

Решение окончательное находится на Eclipse Wiki, и только для Helios на Windows с 6u21 pre build 7:

  • скачать исправленный eclipse_1308.dll (16 июля 2010)
  • и поместить его в
(eclipse_home)/plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.0.v20100503

Вот и все. Здесь не нужно ничего настраивать (опять же, только для Helios на Windows с 6u21 pre build 7 ).
Для платформы, отличной от Windows, необходимо вернуться к проприетарной опции Sun -XX:MaxPermSize.

Проблема основана на регрессии: JVM identification fails due to Oracle rebranding in java.exe, и вызвала ошибку 319514 на Eclipse.
Эндрю разобрался с ошибкой 320005 - [launcher] --launcher.XXMaxPermSize: isSunVM должен возвращать true для Oracle, но это будет только для Helios 3.6.1.
Фрэнсис Аптон, еще один коммиттер Eclipse, размышляет обо всей ситуации.

Обновление u21b7, 27 июля:
Oracle перенесла изменение на следующий релиз Java 6 и не будет внедрять его снова до JDK 7.
Если вы используете jdk6u21 build 7, вы можете вернуться к --launcher.XXMaxPermSize (опция eclipse) вместо -XX:MaxPermSize (нестандартная опция).
автоопределение, происходящее в шиме C launcher eclipse.exe все еще будет искать строку "Sun Microsystems", но с 6u21b7 она теперь будет работать - снова.

Пока что я все еще держу -XX:MaxPermSize версию (потому что я понятия не имею, когда все запустят в eclipse правильный JDK).


Неявные `-startup` и `--launcher.library`

В отличие от предыдущих настроек, точный путь для этих модулей больше не задается, что удобно, поскольку он может отличаться в разных релизах Eclipse 3.6.x:

  • startup: Если не указано, исполняемый файл будет искать в каталоге plugins пакет org.eclipse.equinox.launcher с самой высокой версией.
  • launcher.library: Если не указано, исполняемый файл ищет в каталоге plugins соответствующий org.eclipse.equinox.launcher.[platform] фрагмент с самой высокой версией и использует внутри разделяемую библиотеку с именем eclipse_*.

Использовать JDK6

JDK6 теперь явно требуется для запуска Eclipse:

-Dosgi.requiredJavaVersion = 1.6

В этом вопросе SO сообщается о положительных результатах для разработки на Mac OS.


+UnlockExperimentalVMOptions

Следующие опции являются частью некоторых экспериментальных опций Sun JVM.

-XX:+UnlockExperimentalVMOptions
-XX:+UseG1GC
-XX:+UseFastAccessorMethods

О них сообщалось в этой записи в блоге для потенциального ускорения работы Eclipse.
Смотрите все опции JVM здесь, а также на официальной странице опций Java Hotspot.
Примечание: в подробном списке этих опций сообщается, что UseFastAccessorMethods может быть активным по умолчанию.

См. также Обновление вашей JVM":

Напомним, что G1 - это новый сборщик мусора, готовящийся к выходу JDK 7, но уже используемый в версии 6 от u17.


Открытие файлов в Eclipse из командной строки

Смотрите сообщение в блоге от Andrew Niefer, сообщающее об этой новой опции:

--launcher.defaultAction
openFile

Это говорит программе запуска, что если она вызывается из командной строки, содержащей только аргументы, которые не начинаются с "-", то эти аргументы должны рассматриваться так, как будто они следуют за "--launcher.openFile".

eclipse myFile.txt

Именно такую командную строку получит программа запуска на windows, когда вы дважды щелкнете файл, связанный с eclipse, или выберете файлы и выберете "Open With" или "Send To" Eclipse.

Относительные пути будут разрешены сначала относительно текущего рабочего каталога, а затем относительно каталога программы eclipse.

Смотрите ошибку 301033 для справки. Первоначально ошибка 4922 (октябрь 2001 года, исправлена 9 лет спустя).


p2 и неподписанное диалоговое окно

Если вы устали от этого диалогового окна во время установки ваших многочисленных плагинов:

alt text

, добавьте в ваш eclipse.ini:

-Declipse.p2.unsignedPolicy=allow

См. эту запись в блоге от Chris Aniszczy, и сообщение об ошибке 235526.

Я хочу сказать, что исследования в области безопасности подтверждают тот факт, что меньше подсказок - лучше.
Люди игнорируют вещи, которые всплывают в потоке того, что они хотят сделать.

Для 3.6 мы не должны всплывать предупреждения в середине потока - как бы мы не упрощали, люди будут просто игнорировать их.
Вместо этого мы должны собрать все проблемы, не устанавливать те пакеты, в которых есть проблемы, и вместо этого вернуть пользователя в ту точку рабочего процесса, где он может исправить ситуацию - добавить доверие, настроить политику безопасности более свободно и т.д. Это называется "безопасная постановка".

---------- http://www.eclipse.org/home/categories/images/wiki.gif alt text http://www.eclipse.org/home/categories/images/wiki.gif alt text http://www.eclipse.org/home/categories/images/wiki.gif

Дополнительные опции

Эти опции не находятся непосредственно в eclipse.ini выше, но могут пригодиться при необходимости.


Проблема `user.home` в Windows7

Когда eclipse запускается, он считывает свой файл keystore (где хранятся пароли), файл, расположенный в user.home.
Если по какой-то причине user.home не разрешится должным образом в полнофункциональный путь, Eclipse не запустится.
Первоначально этот вопрос поднимался в этом вопросе SO, если вы испытываете это, вам нужно переопределить файл keystore на явный путь (больше нет user.home для разрешения при запуске)

Добавьте в ваш eclipse.ini:

-eclipse.keyring 
C:\eclipse\keyring.txt

Это было отслежено в ошибке 300577, это было решено в этом другом вопросе SO.


Режим отладки

Подождите, в Eclipse есть более одного файла настроек.
Если вы добавите в eclipse.ini опцию:

-debug

, вы включите режим отладки, и Eclipse будет искать другой файл настроек: файл .options, где вы можете указать некоторые опции OSGI.
И это здорово, когда вы добавляете новые плагины через папку dropins.
Добавьте в ваш .options файл следующие настройки, как описано в этой статье блога "Диагностика Dropins":

org.eclipse.equinox.p2.core/debug=true
org.eclipse.equinox.p2.core/reconciler=true

P2 сообщит вам, какие связки были найдены в папке dropins/, какой запрос был сгенерирован, и каков план установки. Возможно, это не детальное объяснение того, что произошло на самом деле, и что пошло не так, но это должно дать вам убедительную информацию о том, с чего начать:

  • был ли ваш пакет в плане?
  • Была ли это проблема установки (ошибка P2)
  • или, может быть, просто не оптимально включать вашу функцию?

Это исходит из Bug 264924 - [reconciler] No diagnosis of dropins problems, который, наконец, решает следующую проблему типа:

Unzip eclipse-SDK-3.5M5-win32.zip to ..../eclipse
Unzip mdt-ocl-SDK-1.3.0M5.zip to ..../eclipse/dropins/mdt-ocl-SDK-1.3.0M5

Это проблемная конфигурация, поскольку OCL зависит от EMF, который отсутствует.
3.5M5 не предоставляет никакой диагностики этой проблемы.

Запуск eclipse.
Никаких очевидных проблем. В журнале ошибок ничего нет.

  • Help / About / Plugin details показывает org.eclipse.ocl.doc, но не org.eclipse.ocl. В сведениях
  • Help / About / Configuration нет (диагностического) упоминания о. org.eclipse.ocl.
  • Справка / Установка / Информация об установленном ПО не имеет упоминания о org.eclipse.ocl.

Где красивые маркеры ошибок?


Manifest Classpath

См. эту запись в блоге:

  • В Galileo (он же Eclipse 3.5) JDT начал разрешать manifest classpath в библиотеках, добавленных в путь сборки проекта. Это работало независимо от того, была ли библиотека добавлена в путь сборки проекта напрямую или через контейнер classpath, такой как пользовательская библиотека, предоставляемая JDT или реализованная третьей стороной.
  • В Helios это поведение было изменено, чтобы исключить контейнеры пути классов из разрешения пути классов манифеста.

Это означает, что некоторые из ваших проектов могут больше не компилироваться в Helios.
Если вы хотите вернуться к поведению Galileo, добавьте:

-DresolveReferencedLibrariesForContainers=true

См. ссылки на bug 305037, bug 313965 и bug 313890.


Стек IPV4

В этом вопросе SO упоминается потенциальное исправление, когда нет доступа к сайтам обновления плагинов:

-Djava.net.preferIPv4Stack=true

Упоминается здесь на всякий случай, если это может помочь в вашей конфигурации.


Потенциальные оптимизации JVM1.7x64

В этой статье сообщается:

Для справки, самые быстрые варианты, которые я нашел на данный момент для моего стендового тестирования с 1.7 x64 JVM n Windows, это:

-Xincgc 
-XX:-DontCompileHugeMethods 
-XX:MaxInlineSize=1024  
-XX:FreqInlineSize=1024 

Но я все еще работаю над этим...

316
ответ дан 23 November 2019 в 01:04
поделиться

Вот то, что я использую (хотя у меня есть они в ярлыке вместо файла настроек):

eclipse.exe-showlocation-vm "C:\Java\jdk1.6.0_07\bin\javaw.exe"-vmargs-Xms256M-Xmx768M-XX: + UseParallelGC-xx:maxpermsize=128m

0
ответ дан Dave L. 23 November 2019 в 01:04
поделиться

-vm
C:\Program Files\Java\jdk1.6.0_07\jre\bin\client\jvm.dll

Для определения, какую версию Java Вы используете и используете dll вместо того, чтобы запустить процесс javaw

1
ответ дан Stephen Denne 23 November 2019 в 01:04
поделиться

Eclipse нравится много RAM. Используйте, по крайней мере-Xmx512M. Больше при наличии.

3
ответ дан Ken 23 November 2019 в 01:04
поделиться

Если Вы используете Linux + Sun JDK/JRE 32 бита , изменяете "-vm" на:

-vm 
[your_jdk_folder]/jre/lib/i386/client/libjvm.so

при использовании Linux + Sun JDK/JRE 64 бита измените "-vm" на:

-vm
[your_jdk_folder]/jre/lib/amd64/server/libjvm.so

Это хорошо работает для меня на Ubuntu 8.10 и 9.04

9
ответ дан Gilberto Olimpio 23 November 2019 в 01:04
поделиться

-showlocation

, Чтобы облегчить иметь затмение, работающее дважды и знать, какая рабочая область Вы имеете дело с

Eclipse 3.6, добавляет предпочтительную опцию определить, что показать для Workspace name (shown in window title), который работает намного лучше, чем -showlocation по трем причинам:

  1. Вы не должны перезапускать затмение для него для взятия влияния.
  2. Вы можете, выбрал короткий код.
  3. Это кажется первым перед перспективой и именем приложения.
14
ответ дан Stephen Denne 23 November 2019 в 01:04
поделиться

Eclipse Ganymede 3.4.2 настройки

<час>

Для более свежих настроек, см. настройки Eclipse Galileo 3.5 выше .

<час>

JDK

лучшая установка JVM всегда , по-моему, включает последний JDK, который можно найти (поэтому на данный момент, jdk1.6.0_b07 до b16, кроме b14 и b15)

eclipse.ini

Даже с теми довольно низкими настройками памяти, я могу выполнить большие проекты Java (наряду с веб-сервером) на моем старом (2002) рабочий стол с 2Go RAM.

-showlocation
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256M
-framework
plugins\org.eclipse.osgi_3.4.2.R34x_v20080826-1230.jar
-vm
jdk1.6.0_10\jre\bin\client\jvm.dll
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms128m
-Xmx384m
-Xss2m
-XX:PermSize=128m
-XX:MaxPermSize=128m
-XX:MaxGCPauseMillis=10
-XX:MaxHeapFreeRatio=70
-XX:+UseConcMarkSweepGC
-XX:+CMSIncrementalMode
-XX:+CMSIncrementalPacing
-XX:CompileThreshold=5
-Dcom.sun.management.jmxremote

См. GKelly's ТАК ответ и запись в блоге Piotr Gabryanczyk для получения дополнительной информации о новых опциях.

Контроль

можно также рассмотреть запуск:

C:\[jdk1.6.0_0x path]\bin\jconsole.exe

, Как сказано в предыдущий вопрос о потреблении памяти .

63
ответ дан Community 23 November 2019 в 01:04
поделиться

Если вы собираетесь использовать обновление 14 для jdk6, я бы предложил использовать сборщик мусора G1, который, кажется, повышает производительность.

Для этого удалите следующие настройки:

-XX: + UseConcMarkSweepGC
-XX: + CMSIncrementalMode
-XX: + CMSIncrementalPacing

и замените их этими:

-XX: + UnlockExperimentalVMOptions
-XX: + UseG1GC

9
ответ дан 23 November 2019 в 01:04
поделиться

Настройки Eclipse Galileo 3.5 и 3.5.1

В настоящее время (ноябрь 2009 г.) я тестирую с обновлением jdk6 17 следующий набор параметров конфигурации (с Galileo - eclipse 3.5.x, см. ниже для 3.4 или выше для Helios 3.6.x ):
(конечно, адаптируйте относительные пути, представленные в этом eclipse.ini, к правильным путям для вашей установки)

Примечание: для eclipse3.5 замените startup и launcher.library , строки:

-startup
plugins/org.eclipse.equinox.launcher_1.0.200.v20090520.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.0.200.v20090519

eclipse.ini 3.5.1

-data
../../workspace
-showlocation
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
384m
-startup
plugins/org.eclipse.equinox.launcher_1.0.201.R35x_v20090715.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.0.200.v20090519
-vm
../../../../program files/Java/jdk1.6.0_17/jre/bin/client/jvm.dll
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms128m
-Xmx384m
-Xss4m
-XX:PermSize=128m
-XX:MaxPermSize=384m
-XX:CompileThreshold=5
-XX:MaxGCPauseMillis=10
-XX:MaxHeapFreeRatio=70
-XX:+UseConcMarkSweepGC
-XX:+CMSIncrementalMode
-XX:+CMSIncrementalPacing
-Dcom.sun.management.jmxremote
-Dorg.eclipse.equinox.p2.reconciler.dropins.directory=C:/jv/eclipse/mydropins

См. также мой исходный ответ выше для получения дополнительной информации.

Изменения (с июля 2009 г.)

  • относятся к к модулю запуска, а не к общим подключаемым модулям платформы
  • : org.eclipse.equinox.p2.reconciler.dropins.directory option.
  • Galileo поддерживает полностью относительные пути для рабочей области или виртуальной машины (избегайте необходимости измените их с одной установки eclipse на другую, если, конечно, ваша JVM и рабочее пространство останутся такими же)
    Раньше эти относительные пути продолжали переписываться в абсолютные при запуске eclipse ...
  • Вы также можете скопировать каталог JRE установки Java JDK в свой каталог eclipse

Предостережения

Была ошибка с игнорировал точки останова , фактически связанные с JDK.
Используйте JDK6u16 или более позднюю версию для запуска eclipse (затем вы можете определить столько JDK, которое вы хотите скомпилировать в пределах eclipse: это не потому, что вы запускаете eclipse с JDK6, у вас будет для компиляции с тем же JDK).

Макс

Обратите внимание на использование:

--launcher.XXMaxPermSize
384m
-vmargs
-XX:MaxPermSize=128m

Как описано в Eclipse Wiki ,

Eclipse 3.3 поддерживает новый аргумент для средства запуска: - launcher.XXMaxPermSize .
Если используемая виртуальная машина представляет собой виртуальную машину Sun и еще не существует аргумента -XX: MaxPermSize = VM, то средство запуска автоматически добавит -XX: MaxPermSize = 256m в список. используемых аргументов VM.
Средство запуска 3.3 способно идентифицировать виртуальные машины Sun только в Windows.

Как подробно описано в , эта запись :

Не все виртуальные машины принимают аргумент -XX: MaxPermSize , поэтому это передается таким образом. Могут существовать (или не быть) проблемы с идентификацией Sun vms.
Примечание: Eclipse 3.3.1 имеет ошибку , при которой средство запуска не может обнаружить виртуальную машину Sun и, следовательно, не использует правильный размер PermGen. Похоже, это могла быть известная ошибка в Mac OS X для 3.3.0 .
Если вы используете любую из этих комбинаций платформ, добавьте флаг -XX в eclipse.ini , как описано выше.

Примечания:

  • строка « 384m » переводится в часть « = 384m » Аргумент VM, если виртуальная машина чувствительна к регистру на « m », то таков этот аргумент.
  • префикс « - launcher. », он указывает, что аргумент используется самой программой запуска и был добавлен к конкретным аргументам средства запуска, чтобы избежать конфликтов имен с аргументами приложения. (Другие примеры: - launcher.library , - launcher.suppressErrors )

Часть -vmargs -XX: MaxPermSize = 384m является аргументом передается непосредственно на виртуальную машину, полностью обходя программу запуска и не проверяя поставщика виртуальной машины.

76
ответ дан 23 November 2019 в 01:04
поделиться

XX: + UseParallelGC - это самый крутой вариант !!!

2
ответ дан 23 November 2019 в 01:04
поделиться

Вы также можете попробовать запустить JRockit . Это JVM, оптимизированная для серверов, но многие давно работающие клиентские приложения, такие как IDE, очень хорошо работают на JRockit. Eclipse - не исключение. JRockit не имеет перманентного пространства, поэтому вам не нужно его настраивать.

Можно установить целевое время паузы (мс), чтобы избежать длительных пауз gc, останавливающих пользовательский интерфейс.

-showsplash
org.eclipse.platform
-vm
 C:\jrmc-3.1.2-1.6.0\bin\javaw.exe 
-vmargs
-XgcPrio:deterministic
-XpauseTarget:20

Обычно я не утруждаю себя установкой -Xmx и -Xms и позволяю JRockit увеличивать кучу по своему усмотрению. Если вы запускаете приложение Eclipse с JRockit, вы также можете отслеживать, профилировать и находить утечки памяти в своем приложении с помощью набора инструментов JRockit Mission Control. Вы загружаете плагины с этого сайта обновлений . Обратите внимание, работает только для Eclipse 3.3 и Eclipse 3.4

7
ответ дан 23 November 2019 в 01:04
поделиться

Мои собственные настройки (Java 1.7, модификация для 1.6):

-vm
C:/Program Files (x86)/Java/jdk1.7.0/bin
-startup
plugins/org.eclipse.equinox.launcher_1.1.0.v20100507.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.100.v20100628
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vmargs
-server
-Dosgi.requiredJavaVersion=1.7
-Xmn100m
-Xss1m
-XgcPrio:deterministic
-XpauseTarget:20
-XX:PermSize=400M
-XX:MaxPermSize=500M
-XX:CompileThreshold=10
-XX:MaxGCPauseMillis=10
-XX:MaxHeapFreeRatio=70
-XX:+UnlockExperimentalVMOptions
-XX:+DoEscapeAnalysis
-XX:+UseG1GC
-XX:+UseFastAccessorMethods
-XX:+AggressiveOpts
-Xms512m
-Xmx512m
4
ответ дан 23 November 2019 в 01:04
поделиться

Если вы, как и я, имели проблемы с текущим выпуском Oracle 1.6, то вы можете обновить свой JDK или установить

-XX:MaxPermSize
. Дополнительная информация доступна здесь: http://java.dzone.com/articles/latest-java-update-fixes
3
ответ дан 23 November 2019 в 01:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: