eclipse не запускается после установки другой версии jdk [duplicate]

Вместо того, чтобы бросать код на вас, есть два понятия, которые являются ключом к пониманию того, как JS обрабатывает обратные вызовы и асинхронность. (это даже слово?)

Модель цикла события и параллелизма

Есть три вещи, о которых вам нужно знать; Очередь; цикл события и стек

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

while (queue.waitForMessage()) {
   queue.processNextMessage();
}

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

 1. call foo.com/api/bar using foobarFunc
 2. Go perform an infinite loop
 ... and so on

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

function foobarFunc (var) {
  console.log(anotherFunction(var));
}

. Так что все, что foobarFunc должно выполнить (в нашем случае anotherFunction), будет вставлено в стек. исполняемый, а затем забытый - цикл события затем переместится на следующую вещь в очереди (или прослушивает сообщения)

. Главное здесь - порядок выполнения. Это

КОГДА что-то будет запущено

Когда вы совершаете вызов с использованием AJAX для внешней стороны или выполняете любой асинхронный код (например, setTimeout), Javascript зависит от ответ, прежде чем он сможет продолжить.

Большой вопрос, когда он получит ответ? Ответ в том, что мы не знаем, поэтому цикл событий ждет, когда это сообщение скажет: «Эй, забери меня». Если JS просто ждал этого сообщения синхронно, ваше приложение замерзнет, ​​и оно сосать. Таким образом, JS продолжает выполнение следующего элемента в очереди, ожидая, пока сообщение не будет добавлено обратно в очередь.

Вот почему с асинхронной функциональностью мы используем вещи, называемые обратными вызовами. Это похоже на обещание буквально. Как и в I , обещание что-то вернуть в какой-то момент jQuery использует специальные обратные вызовы, называемые deffered.done deffered.fail и deffered.always (среди других). Вы можете увидеть их все здесь

Итак, вам нужно передать функцию, которая в какой-то момент будет выполнена с переданными ей данными.

Поскольку обратный вызов не выполняется немедленно, но в более позднее время важно передать ссылку на функцию, которую она не выполнила. поэтому

function foo(bla) {
  console.log(bla)
}

, поэтому большую часть времени (но не всегда) вы пройдете foo не foo()

. Надеюсь, это будет иметь смысл. Когда вы сталкиваетесь с такими вещами, которые кажутся запутанными, я настоятельно рекомендую полностью прочитать документацию, чтобы хотя бы понять ее. Это сделает вас намного лучшим разработчиком.

196
задан Peter Mortensen 8 October 2014 в 20:46
поделиться

21 ответ

Попробуйте удалить строки -vm P:\Programs\jdk1.6\bin.


Также, общая рекомендация: установите -Dosgi.requiredJavaVersion=1.6, а не 1.5.

72
ответ дан Matt Ball 26 August 2018 в 05:31
поделиться
[Д2] 1. Откройте файл eclipse.ini из вашей папки eclipse, см. Рисунок ниже.

eclipse.ini [/g0]

2. Откройте eclipse.ini в Notepad или любом другом приложении text-editor, найдите строку -Xmx256m (или -Xmx1024m). Теперь измените значение по умолчанию 256m (или 1024m) на 512m. Вы также должны указать точную версию java (1.6 или 1.7 или другую).

max size [/g1]

Как это:

-Xmx512m
-Dosgi.requiredJavaVersion=1.6

OR

-Xmx512m
-Dosgi.requiredJavaVersion=1.7

OR

-Xmx512m
-Dosgi.requiredJavaVersion=1.8

Тогда это хорошо работает для меня.

282
ответ дан Akhil Jain 26 August 2018 в 05:31
поделиться
-vm D:\Java\jdk1.6.0_29\bin\javaw.exe
0
ответ дан Ashkan Mobayen Khiabani 26 August 2018 в 05:31
поделиться

Некоторое время это не ваш eclipse.ini ; это ваш JDK, который разбился. Вы можете проверить это, написав следующую команду в командной строке:

c:\> java -version

Если эта команда показывает следующую ошибку:

Error occurred during initialization of VM

java/lang/NoClassDefFoundError: java/lang/Object

Затем сначала удалите JDK и переустановите ее.

Eclipse снова будет в действии;) Как и сегодня, у меня есть та же проблема, и выше сказано Itachi Uchiha .

1
ответ дан Community 26 August 2018 в 05:31
поделиться

После добавления -vm в eclipse.ini, как показано ниже, работал для меня. Добавьте его до того, как -vmargs не удалите его.

-vm
C:\apps\Java\jdk1.8.0_92\bin\javaw.exe
-vmargs

Появилось обновление jdk, которое вызывало эту проблему.

1
ответ дан Dinesh M 26 August 2018 в 05:31
поделиться

Попробуйте добавить

-vm
D:\Java\jdk1.6.0_29\bin\javaw.exe

FYI: см. sunblog

Для других, у которых могут быть проблемы с Java 7, в соответствии с Eclipse Wiki - eclipse.ini vm_value (пример окна)

Это может не работать во всех системах. Если вы столкнулись с запуском Java, но возвратили код выхода = 1, при запуске eclipse, измените аргумент -vm, чтобы указать на jvm.dll

, например

-vm
C:\Program Files\Java\jre7\bin\client\jvm.dll

Также обратите внимание, что

Параметр -vm должен появиться перед параметром -vmargs, поскольку все после -vmargs передается непосредственно в JVM

102
ответ дан Eddie 26 August 2018 в 05:31
поделиться
  1. Откройте файл eclipse.ini из вашей папки eclipse.
  2. У него есть некоторые дополнительные настройки. Найдите строку –launcher.XXMaxPermSize. Теперь удалите значение по умолчанию 256m и сохраните его.
18
ответ дан Florent 26 August 2018 в 05:31
поделиться

Попробуйте следующее:

-startup plugins/org.eclipse.equinox.launcher_1.1.1.R36x_v20101122_1400.jar 
--launcher.library plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.2.R36x_v20101222 
-showsplash org.eclipse.platform 
--launcher.XXMaxPermSize 256m 
--launcher.defaultAction openFile 
-vm F:\Program Files\jdk1.6\bin\javaw.exe 
-vmargs 
-Xms512m 
-Xmx512m 
-XX:+UseParallelGC 
-XX:PermSize=256M 
-XX:MaxPermSize=512M
3
ответ дан iikkoo 26 August 2018 в 05:31
поделиться

После выполнения вышеуказанного решения по сокращению памяти Eclipse начинает работать, но зависает каждый раз при загрузке плагинов из рабочего пространства специально в org.eclipse.debug.core.

Я нашел решение здесь, Eclipse зависает на экране Splash и хочет поделиться им. Надеюсь, это тоже поможет другим.

6
ответ дан newfurniturey 26 August 2018 в 05:31
поделиться

ШАГИ ДЛЯ РЕШЕНИЯ ВЫДАЧИ: -

  1. Откройте файл eclipse.ini из вашей папки eclipse.
  2. У него есть часть добавления конфигурации. Найдите строку -launcher.XXMaxPermSize.It будет последней строкой в ​​этом файле. Теперь удалите / удалите значение по умолчанию 256m и сохраните его.
0
ответ дан Nikhil Kumar 26 August 2018 в 05:31
поделиться

Перейдите в Диспетчер задач , завершите все ненужные задачи и запустите Eclipse. Вы не получите эту ошибку. Попробуй; это сработало для меня:)

16
ответ дан Peter Mortensen 26 August 2018 в 05:31
поделиться

Я знаю, что сейчас это довольно старо, но у меня была одна и та же проблема, и проблема заключалась в том, что я выделял много памяти, чтобы затмить, что она не могла справиться. Итак, откройте eclipse.ini и уменьшите объем памяти, который выделяется на -Xmx XXMaxPermSize. Я поменял мой на -Xmx512m и XXMaxPermSize256m

26
ответ дан Popeye 26 August 2018 в 05:31
поделиться

Это может работать:

Открыть файл eclipse.ini и вставить ниже строк в конце строк.

-vmargs
-Xms40m
-Xmx512m
-XX:MaxPermSize=256m
3
ответ дан pudaykiran 26 August 2018 в 05:31
поделиться
  1. Откройте файл ecplise.ini, который находится в папке установки eclipse.
  2. Найти & amp; Замените строку -vmargs на -vm D: \ jdk1.6.0_23 \ bin \ javaw.exe ИЛИ просто удалите строку -vmargs и сохраните ее. Теперь проблема решена
3
ответ дан Rajas 26 August 2018 в 05:31
поделиться

Для меня это было решено путем изменения пути bin JDK в переменной окружения Path. Поместите путь JDK bin, в котором jre / bin / client / jvm.dll находится в JDK home.

0
ответ дан Srihari Karanth 26 August 2018 в 05:31
поделиться

убедитесь, что eclipse.ini не имеет множественного ввода и используется запись vm перед vmargs

-vm
  D:/java/jdk1.8.0_65/bin/javaw.exe
-vmargs
-Dosgi.requiredJavaVersion=1.8
-Dosgi.instance.area.default=@user.home/eclipse-workspace
-XX:+UseG1GC
-XX:+UseStringDeduplication
-Dosgi.requiredJavaVersion=1.8
-Xms256m
-Xmx1024m
1
ответ дан Sunil shakya 26 August 2018 в 05:31
поделиться
  1. Откройте папку с Eclipse.exe и найдите файл eclipse.ini
  2. Замените -vmargs вашим текущим реальным путем javaw.exe: * -vm "c : \ Program Files \ Java \ jdk1.7.0_07 \ bin \ javaw.exe "*
    -startup
    plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar
    --launcher.library
    plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.200.v20120522-1813
    -product
    com.android.ide.eclipse.adt.package.product
    --launcher.XXMaxPermSize
    256M
    -showsplash
    com.android.ide.eclipse.adt.package.product
    --launcher.XXMaxPermSize
    256m
    --launcher.defaultAction
    openFile
    **-vm “c:\Program Files\Java\jdk1.7.0_07\bin\javaw.exe”** 
    -Dosgi.requiredJavaVersion=1.6
    -Xms40m
    -Xmx768m
    -Declipse.buildId=v21.1.0-569685
    
11
ответ дан user1012345 26 August 2018 в 05:31
поделиться

Вы также можете решить эту проблему, удалив значение «256 м» в строке «-launcher.XXMaxPermSize».

8
ответ дан Yasir Ali 26 August 2018 в 05:31
поделиться

Уменьшить размер параметра до -256

См. мой файл eclipse.ini

    -startup
   plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar
   --launcher.library
  plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.100.v20110502
  -product
   org.eclipse.epp.package.jee.product
   --launcher.defaultAction
   openFile
   --launcher.XXMaxPermSize
   256M
  -showsplash
   org.eclipse.platform
   --launcher.XXMaxPermSize
   256M
  --launcher.defaultAction
  openFile
  -vmargs
  -Dosgi.requiredJavaVersion=1.6
  -Xms40m
  -Xmx512m
1
ответ дан Youdhveer 26 August 2018 в 05:31
поделиться

В файле STS.conf вам нужно проверить две важные вещи, чтобы избежать создания / выделения jvm-проблемы

1. Укажите точное место установки jdk:

--vm C:\Program Files\Java\jdk1.7.0_01\jre\bin\javaw.exe

2. Вы должны указать точную версию java:

--Dosgi.requiredJavaVersion=1.7

3. Попытайтесь уменьшить размер памяти:

--XX:MaxPermSize=256m
6
ответ дан newfurniturey 26 August 2018 в 05:31
поделиться

В моем случае эта проблема возникла после обновления Java от 1.6 до 1.7.

Чтобы понять ошибку, запустите java.exe в папке eclipse.exe. Используйте параметры из eclipse.ini, поскольку он покажет, какой параметр вызывает сбой.

Например:

F:\Mobile Class\adt-bundle-windows-x86\adt-bundle-windows-x86\eclipse>java -star
tup plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar --launcher.lib
rary plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.200.v20120522-1813
 -product com.android.ide.eclipse.adt.package.product --launcher.XXMaxPermSize 7
68m  -showsplash org.eclipse.platform --launcher.XXMaxPermSize 768m --launcher.d
efaultAction openFile -vm C:\Program Files\Java\jre7\bin\client\jvm.dll -vmargs
-Dosgi.requiredJavaVersion=1.6 -Declipse.buildId=v21.1.0-569685 -Xms40m -Xmx768m

Unrecognized option: -startup
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

Итак, я изменил «запуск» swith на «jar», как показано ниже и проблема исправлена:

F:\Mobile Class\adt-bundle-windows-x86\adt-bundle-windows-x86\eclipse>java -jar
plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar --launcher.library
 plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.200.v20120522-1813 -pr
oduct com.android.ide.eclipse.adt.package.product --launcher.XXMaxPermSize 768m
-showsplash org.eclipse.platform --launcher.XXMaxPermSize 768m --launcher.defaul
tAction openFile -vm C:\Program Files\Java\jre7\bin\client\jvm.dll -vmargs -Dosg
i.requiredJavaVersion=1.6 -Declipse.buildId=v21.1.0-569685 -Xms40m -Xmx768m
16
ответ дан Peter Mortensen 26 August 2018 в 05:31
поделиться
Другие вопросы по тегам:

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