Eclipse exitcode = 1 [дубликат]

Вместо того, чтобы бросать код на вас, есть два понятия, которые являются ключом к пониманию того, как 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()

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

112
задан Chris Martin 4 November 2014 в 08:41
поделиться

17 ответов

Сообщение об ошибке указывает на проблему с вашей версией Java. У вас установлен JDK?

Попробуйте добавить следующее (отмечая новую строку):

/! \ Убедитесь, что опция -vm встречается перед командой -vmargs. Все после -vmargs передается непосредственно в JVM.

-vm 
c:/wherever/java/jdk1.6.0_21/jre/bin/server/jvm.dll
-vmargs... 

... в ваш файл eclipse.ini, указывая на JDK, который вы хотите использовать, и убедитесь, что требуемый Версия Java по крайней мере такая же новая, как ваш JDK. Это путь для системы Windows.

Если вы не знаете, где находится файл eclipse.ini: обычно он находится в папке вашего eclipse.exe. здесь (прокрутка вниз).

].

Edit2: @KadoLakatt : причина, по которой установка последней версии Java работала для вас, заключается в том, что Eclipse проверяет стандартный путь для JVM, если он не находит -vm (см. здесь ). Однако я бы не рекомендовал это, так как вы ошибаетесь, полагая, что JVM используется. Если вы обновите Java (автоматически?), Вы можете столкнуться с проблемами в своем Eclipse, задаваясь вопросом, что вы, возможно, изменили. Лучше установите его в определенную папку в eclipse.ini, чтобы быть уверенным.

213
ответ дан Blag 25 August 2018 в 14:51
поделиться

также может быть так:

-vm 
C:\Program Files\Java\jre6\bin\server\jvm.dll
9
ответ дан Abu Shumon 25 August 2018 в 14:51
поделиться

Для тех из вас, кто пробовал все вышеперечисленные ответы без каких-либо успехов, попробуйте снизить значение -Xms. Я должен поддерживать более старый Eclipse (Weblogic Eclipse 10.3.6). У меня был следующий .ini на моей машине с Windows 7 и моей виртуальной машиной Windows Server 2008 R2 (версия Java ниже указывает на 32-разрядную Java), которая работали и отлично работали соответственно.

-vm
C:/Java/Java7/jdk1.7.0_79/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
-showsplash
org.eclipse.platform
--launcher.defaultAction
openFile
-vmargs
-Xms1024m
-Xmx1024m
-XX:MaxPermSize=256m
-Dsun.lang.ClassLoader.allowArraySyntax=true
-Dweblogic.home=C:/Oracle/Middleware/wlserver_10.3

Итак, 32-разрядная Java для 32-разрядного Eclipse, но все же код выхода 1. Основываясь на всех ответах, которые я видел здесь, и единственное изменение будучи новым ноутбуком с Windows 10, единственным возможным объяснением было то, что новая ОС и Eclipse не соглашались на что-то. Поэтому я начал играть с каждым из значений, и это сработало, когда я опустил Xms и Xmx до 512m. У меня есть подозрение, что, возможно, новая ОС Windows предотвращает более высокий начальный размер кучи на основе некоторого условия выполнения (более высокие -Xms работают в Windows 10 на всех других подобных устройствах, с которыми я сталкивался), поэтому любое другое объяснение приветствуется. Тем временем следующее единственное значение, которое я настроил для успешного запуска Eclipse.

-Xms512m 
4
ответ дан behold 25 August 2018 в 14:51
поделиться

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

2
ответ дан Bernie 25 August 2018 в 14:51
поделиться

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

Вот мой файл eclipse.ini:

--clean
-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.200.v20130807-1835
-product
org.eclipse.epp.package.jee.product
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
256M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vm
C:/Program Files (x86)/Java/jre7/bin/javaw.exe
--launcher.appendVmargs
-vmargs
-Dosgi.requiredJavaVersion=1.6
-Xms40m
-Xmx1024m

Чтобы запустить Eclipse для запуска, я удален

    -vmargs
    -Dosgi.requiredJavaVersion=1.6
    -vm 
C:/Program Files (x86)/Java/jre7/bin/javaw.exe

Итак, вот мой обновленный файл:

--clean
-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.200.v20130807-1835
-product
org.eclipse.epp.package.jee.product
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
256M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-Xms40m
-Xmx1024m

Я понятия не имею, почему удаление osgi.requiredJavaVersion = 1.6 исправлено, так как моя версия jvm равна 1.6. Из документа doc http://help.eclipse.org/indigo/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Freference%2Fmisc%2Fruntime-options.html

osgi.requiredJavaVersion
The minimum java version that is required to launch Eclipse. The default value is "1.4.1".

Я думаю, что моя версия Java установлена ​​правильно. Во всяком случае, Eclipse начинается и работает для меня сейчас ......

38
ответ дан blue-sky 25 August 2018 в 14:51
поделиться

У меня была такая же проблема в моей Windows 7, 64-разрядной машине. Затем я загрузил и установил 64-разрядный jdk для Java (который включает jre). Это решило проблему.

4
ответ дан CRM 25 August 2018 в 14:51
поделиться

Я тоже столкнулся с подобной проблемой, не решенной после добавления команды в файл eclipse.ini. Моя коренная причина другая. Я экспериментировал на диаграммах последовательности, используя objectaid. Это бросает исключение и нарушает мое рабочее пространство. У вас может быть другая проблема при работе с новыми плагинами. Лучше проверите файл журнала, расположенный в рабочем пространстве проекта C:\path\to\workspace\.metadata\.log

2
ответ дан Jajikanth pydimarla 25 August 2018 в 14:51
поделиться

Я попытался изменить путь в параметре -vm, но это не помогло. Затем я удалил параметр -vm и -vmargs из eclipse.ini. Это сработало для меня

0
ответ дан Koss 25 August 2018 в 14:51
поделиться

У меня была эта проблема недавно, но я не изменил ни одну java-версию, ни обновленную версию java. Возможно, эта проблема возникла из-за сбоя системы.

И после прочтения пары ответов здесь я решил изменить версию java от 1,6 до 1,7 в файле eclipse.ini.

-vmargs
-Dosgi.requiredJavaVersion=1.6  

После этого изменения Eclipse начал хорошо, и он сработал. Поскольку я ничего не изменил, я решил изменить его на 1.6 до того, что изначально было.

Затем я начал затмение и догадывался, что он сработал. Так выглядит в моем случае просто касание / модификация файла eclipse.ini.

Я надеюсь, что этот ответ будет полезен кому-то.

4
ответ дан Mohammad Faisal 25 August 2018 в 14:51
поделиться

Если ни одно из решений не работает, проверьте, установлено ли на вашей машине несколько версий java. Пожалуйста, сохраните только одну версию, которую вы предпочитаете, и все должно работать нормально.

0
ответ дан Neo 25 August 2018 в 14:51
поделиться

просто для добавления здесь ... Для тех парней, которые все еще не смогли начать затмение из-за такой же ошибки, проверьте файл eclipse.ini еще раз и посмотрите, не забыл ли вы поместить M после размера памяти. Например:

-Xmx1024
or
-Xmx1024MB
or
-Xmx1024 M
or
-Xmx1024 mb
or
-Xmx1024mb

неверны, это должно быть -Xmx1024M. Я пробовал разные идеи из SOF и с других форумов, и в этом разрезе / вставке я забыл, что я пропустил M (такая маленькая вещь, чтобы пропустить), поэтому я подумал, что должен поделиться. Если это работает для некоторых из вас, пожалуйста, голосуйте.

0
ответ дан paul 25 August 2018 в 14:51
поделиться

Ни один из вышеперечисленных ответов не помог мне. Я обнаружил, что в общем случае такая ошибка может означать, что ваш eclipse.ini имеет недопустимую запись. Таким образом, все приведенные выше ответы могут быть правильными, в зависимости от вашего конкретного случая. В моем случае, оказалось, я добавил аргумент locale с опечаткой в ​​нем.

0
ответ дан Richard 25 August 2018 в 14:51
поделиться

Непосредственное изменение файла eclipse - это не очень хорошая идея, независимо от того, фасет или ini, если только это не может быть изменено в eclipse. Была та же проблема, с установленной jdk1.8. Измените его на jdk 1.7.

Кроме того, согласно https://wiki.eclipse.org/Eclipse/Installation , необходимы как LUNA, так и MARS 1.7. Поэтому просто убедитесь, что он установлен.

0
ответ дан Tiina 25 August 2018 в 14:51
поделиться

Рабочие комбинации OS, JDK и бит затмения.

  • 32-разрядная ОС, 32-разрядная JDK, 32-разрядная Eclipse (только 32-разрядная версия)
  • 64-разрядная ОС, 32-разрядная JDK, 32-разрядная Eclipse
  • 64-разрядная ОС, 64-разрядная JDK, 64-бит Eclipse (только для 64-разрядных)

Пожалуйста, используйте 1 из приведенных выше комбинаций.

5
ответ дан tk_ 25 August 2018 в 14:51
поделиться

, если он говорит, что c: / program files / java / jre / bin / server / jvm.dll не найден, скопируйте jre из папки jdk и вставьте его вне папки jdk. а затем повторите попытку ...

-4
ответ дан user3337536 25 August 2018 в 14:51
поделиться

У меня была та же проблема, которая была вызвана из-за аварийного отключения моих окон 10. Раньше в пути у меня был путь Oracle, то есть путь, вставленный Oracle во время установки JDK. Я удалил его и изменил путь к местоположению JDK. Это решило проблему.

1
ответ дан Vijay 25 August 2018 в 14:51
поделиться

Это можно решить, добавив следующую строку в файл eclipse.ini -XX: -UseCompressedOops

1
ответ дан Vivek 25 August 2018 в 14:51
поделиться
Другие вопросы по тегам:

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