Вопрос по eclipse, macos, java – Как мне запустить Eclipse с использованием нового Oracle 1.7 JDK для Mac?

46

Я пытаюсь получитьновый 1.7 JDK работа с Eclipse (это официальный выпуск Oracle).

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

Я переместил новую JVM в начало списка в настройках Java, но Eclipse по-прежнему начинается с версии 1.6. Если я отключаю 1.6 в настройках Java, я сразу же получаю диалоговое окно после того, как дважды щелкну Eclipse, говоря: «Не удалось создать виртуальную машину Java».

edit: Я добавил следующее в мой eclipse.ini как раз перед -vmargs:

<code>-vm
/Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home/bin/java
</code>

Тем не менее, в диалоговом окне сведений об установке Eclipse я все еще вижу:

<code>java.runtime.version=1.6.0_31-b04-415-11M3646
</code>

edit 2: вот содержимое моего файла eclipse.ini:https://gist.github.com/2512578

Это фактический исполняемый файл. Я использую Indigo Service Release 2, идентификатор сборки: 20120216-1857 sanity
Не могли бы вы опубликовать полное содержимое вашего файла eclipse.ini? Haz
Это очень странно. Если указан аргумент -vm, я считаю, что он должен отменять любые другие JVM, которые Eclipse иначе использовал бы. Установлена ли JVM в каталоге jre в каталоге eclipse? Возможно, по какой-то причине конкретная версия Eclipse, которую вы используете, подхватит эту JVM вместо той, которая указана в eclipse.ini. Если это ни к чему не приведет, я бы посмотрел, на какую JVM указывает ваш путь, и определил, использует ли это Eclipse. Очевидно, что изменение JRE по умолчанию в вашей системе не является здесь оптимальным решением, но, вероятно, его стоит рассмотреть. Haz
Оказывается, что спецификации для Eclipse Launcher явно игнорируют параметр -vm на Mac. Увидеть:help.eclipse.org/helios/…  Внизу написано: «MacOSX: Средство запуска использует системную среду JavaVM и всегда загружает vm в процессе, используя API вызова JNI». Scott Carey
Это путь к реальному исполняемому файлу Java или каталогу? Он должен ссылаться на фактический исполняемый файл для работы. Кроме того, какую версию Eclipse вы используете? Haz

Ваш Ответ

15   ответов
32

https://bugs.eclipse.org/bugs/show_bug.cgi?id=339788 относительно невозможности использования нового Oracle JDK с Eclipse на OS X. Использование опции -vm внутри eclipse.ini не работает. Единственный способ обойти это - использовать следующий сценарий оболочки:

#!/bin/sh
#
export JAVA_HOME=/Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home
LAUNCHER_JAR=/Applications/eclipse/plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar

java \
-showversion \
-XX:MaxPermSize=256m \
-Xms1024m \
-Xmx1024m \
-Xdock:icon=/Applications/eclipse/Eclipse.app/Contents/Resources/Eclipse.icns \
-XstartOnFirstThread \
-Dorg.eclipse.swt.internal.carbon.smallFonts \
-Dosgi.requiredJavaVersion=1.5 \
-jar $LAUNCHER_JAR

Используя шаги наhttp://mathiasbynens.be/notes/shell-script-mac-appsЯ превратил приведенный выше скрипт в приложение, которое я могу оставить на своей док-станции.

@Kay - спасибо за взлом, проверено, это именно проблема, и она работает, просто заменив эту библиотеку
Не работает для меня, так же, как другие 3 упомянутых решения. Неужели так сложно заставить Eclipse работать на OSX Mavericks? даже почти через полгода после его выхода? я начал новую тему здесь:stackoverflow.com/questions/22725267/…
Также это интересно:bugs.eclipse.org/bugs/show_bug.cgi?id=374792#c3
Проблема в бинарнике запуска Eclipse 3.7. Для Eclipse 3.7.2 это файлplugins/org.eclipse.equinox.launcher.cocoa.macosx.x86_64_1.1.101.v20120109-1504/eclipse_1408.so  Соответствующийeclipse*.so из Eclipse 4.x может обрабатывать новые версии Java 7 для Mac OS X. Теперь это ужасный хак, но если вам действительно нужно использовать целевую платформу 3.7.x, вы можете просто скопировать более новуюeclipse*.so из установки Eclipse 4.3 в ваш продукт. Тем не менее, вам нужно сохранить исходные имена файлов, поэтому для Eclipse 3.7 все равно необходимо использовать вышеуказанное имя плагина иeclipse_1408.so.
0

https://bugs.eclipse.org/bugs/show_bug.cgi?id=411361#c25 :

#!/bin/bash

# Workaround for https://bugs.eclipse.org/411361
# "[Mac] Kepler doesn't launch without JRE 6, even if JDK 7 is installed"
#
# Put this launch.command into the same folder as Eclipse.app.
#
# If necessary, adapt JAVA_EXECUTABLE to the full path to your Java executable:

JAVA_EXECUTABLE=java

cd "$(dirname "$0")"

$JAVA_EXECUTABLE \
-Djava.library.path="$(echo plugins/org.eclipse.equinox.launcher.cocoa.macosx.x86_64_*/eclipse_*.so)" \
-Xms512m \
-Xmx2048m \
-Xdock:icon=Eclipse.app/Contents/Resources/Eclipse.icns \
-XstartOnFirstThread \
-Dorg.eclipse.swt.internal.carbon.smallFonts \
-XX:MaxPermSize=256m \
-jar "$(echo plugins/org.eclipse.equinox.launcher_*.jar)"  \
-os macosx \
-ws cocoa \
-arch x86_64 \
-showsplash \
-name Eclipse \
--launcher.appendVmargs \
-debug \
-showlocation \
-consolelog
9

есть исправление для Kepler, которое должно появиться в следующем выпуске службы.

Между тем, в этой ошибке упоминается обходной путь, который позволит вам запустить eclipse, даже не устанавливая JRE 1.6 от Apple:https://bugs.eclipse.org/bugs/show_bug.cgi?id=411361#c20

Это позволит вам запустить затмение из искателя или прожектора, но не из дока.

Я только что проверил это на OS X Mavericks, который во время обновления теряет jre 6 и просит установить его при попытке запустить Eclipse. Конечно, у меня установлена последняя версия Oracle JDK 1.7.

Отказаться от этого, а затем обойти это, отредактируйте возможности jvm в /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Info.plist

<key>JVMCapabilities</key>
            <array>
                    <string>CommandLine</string>
                    <string>JNI</string>
                    <string>BundledApp</string>
                    <string>WebStart</string>
                    <string>Applets</string> 
            </array>

С этим исправлением вам не нужно указывать vm в eclipse.ini.

Это дает мне "не удалось создать виртуальную машину Java". Постскриптум У меня установлен JDK 1.7.0_45 и работает
Это хорошо работает для меня, и кажется немного лучше, чем изменение файлов дистрибутива Eclipse. Однако это требует перезагрузки вашего Mac.
У меня была похожая проблема, которая могла быть решена таким образом, но я также обнаружил, что добавление пустых папок в/System/Library/Java/JavaVirtualMachines/1.6.0.jdk а также/System/Library/Java/Support/Deploy.bundle заставил OS X использовать Oracle JDK без изменений.
Ах, это здорово. После Googeling и попытки по крайней мере 20 разных вещей, это было единственное решение, которое работало. Огромное спасибо. Запуск Mavericks, если кто-то там борется также. Обратите внимание, что (как указано выше) требуется перезагрузка.
2

что ваш java_home является corrento в / usr / libexec / java_home;

Не изменяйте свой eclipse.ini, редактируйте файл Info.plist и изменяйте / добавляйте эту строку & lt; Строка & GT; -vm & л; / Строка & GT; & Lt; Строка & GT; / Библиотека / Java / JavaVirtualMachines / & APOS; JDK-версия-ваш & APOS; / Содержание / Главная / бен / Java & л; / Строка & GT; и сохранить. Откройте Eclipse и готово!

Для меня это работало хорошо, и я использовал javafx e (fx) clipse!

PS: В системе Mac OS X вы можете найти Info.plist, щелкнув правой кнопкой мыши (или Ctrl + щелчок) на исполняемом файле Eclipse в Finder, выберите «Показать содержимое пакета», а затем найдите Info.plist в папке «Содержание».

спасибо боссу наконец то получилось ...
2

Просто отредактируйте

Eclipse.app/Contents/Info.plist

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

<string>-vm</string>
<string>/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/java</string>

Это помогло мне откатить с 1.7.0 до 1.6.0.

1

что вы используете версию Eclipse, которая поддерживает Java 7 (я полагаю, что-нибудь 3.7 и выше), вы сможете указать JVM, используемую Eclipse, в файле eclipse.ini. Если вы откроете его, вы должны увидеть & quot; -vm & quot; свойство, за которым следует каталог JVM, который вы сейчас используете. Вы должны иметь возможность просто изменить этот каталог на вашу установку 1.7.

Примечание. Я не использовал Eclipse на Mac, поэтому имя файла конфигурации может отличаться.

Не работает :-( см. Редактировать на вопрос sanity
Форматeclipse.ini очень специфичен, и найти его в Mac OS X немного сложно. Увидетьwiki.eclipse.org/Eclipse.ini
Спасибо за отличную ссылку. Я не знал о конкретном порядке для опций в eclipse.ini.
1

и запуска Eclipse 3.7 SR2.

Увидетьhttps://bugs.eclipse.org/bugs/show_bug.cgi?id=339788

По состоянию на 2012-07-03, он отмечен как дубликатbug 374791, который помечен как RESOLVED FIXED, но все еще не работает для меня в Eclipse 4.2
6

о, добавив

-vm /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/

в конце моего eclipse.ini (без этого перевода строки)

Это, наконец, изменило мои подробности установки Eclipse & gt; Конфигурация от

-vm /System/Library/Frameworks/JavaVM.framework

в

-vm /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/bin/../jre/lib/server/libjvm.dylib

Это сделалnot работать с моей установкой Eclipse INDIGO.

36

добавьте две следующие строки перед -vmargs в файле .ini:

-vm 
{YOUR_JAVA_7_HOME}/jre/lib/server/libjvm.dylib

(помните, что это должны быть отдельные строки), а также добавьте соответствующую запись в «Info.plist». файл (добавьте или измените элементы массива в разделе «Eclipse» - каждый дочерний элемент строки соответствует параметру командной строки).

...
<key>Eclipse</key>
<array>
<string>-vm</string>
<string>/{MY_VM_HOME}/jre/lib/server/libjvm.dylib</string>
...
</array>

В качестве альтернативы просто используйте-vm {YOUR_JAVA_7_HOME}/lib/server/libjvm.dylib параметр командной строки при запуске eclipse от терминала.

Это сработало для меня (затмение 3.7.1), я не знаю, почему это не помечено как хороший ответ.
Я подтверждаю, что это работало (в eclipse.ini и plist.info) с моей установкой Eclipse Indigo! Благодарю.
Для Kepler и JRE 1.7 есть общая библиотека JVM & quot; /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/jre/lib/server/libjvm.dylib" не содержит символ JNI_CreateJavaVM.
Спасибо за комментарии. @ 1 Пример основан на JRE. Не могли бы вы обновить путь для JDK, который указывает на libjvm.dylib? @ 2 да, это s. Info.plist & apos; Я исправил это сейчас и добавил пример изменения, которое необходимо сделать. Еще раз спасибо.:)
Опробовать это на Маверикс и не удалось. (1) Использовал / usr / libexec / java_home для определения {JAVA_7_HOME}. Это дало /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home. Существует подкаталог lib, но нет подкаталога lib / server. (2) Я обнаружил, что "добавить соответствующую запись в" plist.info " файл & Quot; немного редкий Ближайший эквивалент для меня - Info.plist (с большой буквы) в каталоге Contents, но я не уверен, что туда добавить.
0

Eclipse - > Preference - > Java - > Installed JRE - > Add button - > Standard VM и обратитесь к JRE Home путь к/Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home и добавьте пользовательское имя. После указания пути JRE необходимые файлы Jar будут добавлены автоматически и нажмите «Готово». Пожалуйста, убедитесь, что JDK уже установлен.

Это исправление заставляет приложения, запускаемые из Eclipse, использовать указанную JVM. Это не влияет на JVM, используемую для запуска самого Eclipse.
0

затмение сработало, но Titanium не сработало, и в итоге я заглянул в файл конфигурации, чтобы увидеть, что отличалось

Затмение было

eclipse.p2.profile=epp.package.standard

Титан имел

eclipse.p2.profile=profile

После изменения вышеуказанного в соответствии с конфигурацией eclipse я смог запустить Titanium

0

который не подходит для Eclipse. Для решения проблемы вам также нужно установить JDK 7, который уже включает JRE 1.7.0.

Вот ссылка, которую вы можете скачать.

Просто выберите версию MacOS X в Java SE Development Kit 7u79 и установите ее.

http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

После установки этого пакета Eclipse запустится без каких-либо изменений.

3

p (щелкните правой кнопкой мыши, отобразите содержимое) и вставьте после & quot; Eclipse & quot; & Quot; -vm / Система / Library / Каркасы / JavaVM.framework / JavaVM & Quot;

Моя выглядит так:

    <key>Eclipse</key>
    <array>
        <string>-vm</string><string>/System/Library/Frameworks/JavaVM.framework/JavaVM</string>
        <string>-keyring</string><string>~/.eclipse_keyring</string>
        <string>-showlocation</string>
    </array>

Если вы сделаете это, вам не придется обновлять файл после обновления JRE.

Это единственное решение, которое сработало для меня, однако я попробовал много других шагов. Если у вас возникли проблемы, я бы посоветовал вам убедиться, что у вас установлена последняя версия Eclipse и JDK, а затем попробуйте этот ответ. Я установил Java 6 через стандартное приглашение ОС до установки JDK 7, не уверен, помогло ли это или повредило.
1

узки JDK 7.

-1

о Oracle. Это полностью решило проблему, и теперь открывается двойным щелчком, без терминала или программирования не требуется.

Не могли бы вы дать ссылку, которая, как вы знаете, работает?
Это не отвечает на вопрос

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