Подтвердить что ты не робот

Включить JDK 7 в Eclipse Indigo на Mountain Lion

Я работаю над проектом Scala с Eclipse (Indigo SR2). Сегодня я обновил свою машину до Mountain Lion, потому что нам нужны некоторые функции JDK 7. Установка JDK 7 работала нормально:

$ java -version
java version "1.7.0_13"
Java(TM) SE Runtime Environment (build 1.7.0_13-b20)
Java HotSpot(TM) 64-Bit Server VM (build 23.7-b01, mixed mode)

В Eclipse я изменил следующие настройки:

  • Java = > Компилятор = > Установленные JRE: добавление JDK1.7.0 с помощью пути /Library/Java/JavaVirtualMachines/jdk1.7.0_13.jdk/Contents/Home
  • Java = > Компилятор = > Установленные JREs = > Экзаменационная среда: установите JavaSE-1.7 на JDK1.7.0
  • Java = > Компилятор: Уровень соответствия: 1.7
  • Scala = > Компилятор: Target = jvm-1.7

Затем я перезапустил Eclipse и попытался запустить script. Тем не менее, я всегда получаю сообщение об ошибке:

value getPlatformMXBean is not a member of object java.lang.management.ManagementFactory

Указанный метод доступен только с Java 1.7, и Eclipse, похоже, не находит его, хотя щелчок на нем показывает функцию в классе ManagementFactory. О Eclipse = > Конфигурация показывает, что он все еще использует JDK 6 (java.runtime.version=1.6.0_37-b06-434-11M3909), но мне нужен JDK 7.

Итак, я попробовал следующее (как описано в StackOverflow и других сайтах):

  • добавить -vm /Library/Java/JavaVirtualMachines/jdk1.7.0_13.jdk/Contents/Home/bin/java в файл eclipse.ini(дважды проверить путь, правильное расположение в файле в соответствии с сайтом eclipse, а также добавить новую строку между ними)
  • добавьте то же самое к Info.plist
  • $ /Applications/eclipse/Eclipse.app/Contents/MacOS/eclipse -vm /Library/Java/JavaVirtualMachines/jdk1.7.0_13.jdk/Contents/Home/
  • Создайте символическую ссылку от 1.6 до 1.7

Но не повезло, Eclipse продолжает работать только с JDK-6. Странно, что я могу явно изменить JRE в Run=>Run Configurations на JDK7, и он будет запускать его таким образом. Но я бы не хотел изменять это для каждого запускаемого файла.

Другие предложения?


Благодаря подсказке от EECOLOR, я смог использовать плагин Scala в Eclipse Juno, где JDK7 работает отлично. Однако теперь я сталкиваюсь с проблемой, связанной с зависимостью. Исключением, которое я получаю, можно увидеть здесь: https://gist.github.com/anonymous/ac0f3a3655419e5149fa

Странно, файл просто начинается нормально, когда я запускаю его из командной строки простым java -cp JARFILE com.AND-SO-ON.file. Для создания источников и получения зависимостей мы используем SBT.

My Eclipse.ini выглядит следующим образом (по умолчанию, кроме Xmx):

-startup
../../../plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar
--launcher.library
../../../plugins/org.eclipse.equinox.launcher.cocoa.macosx.x86_64_1.1.200.v20120522-1813
-product
org.eclipse.epp.package.java.product
--launcher.defaultAction
openFile
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Dhelp.lucene.tokenizer=standard
-XstartOnFirstThread
-Dorg.eclipse.swt.internal.carbon.smallFonts
-XX:MaxPermSize=256m
-Xms40m
-Xmx1060m
-Xdock:icon=../Resources/Eclipse.icns
-XstartOnFirstThread
-Dorg.eclipse.swt.internal.carbon.smallFonts

Тот же проект (т.е. действительно тот же проект, а не только тот же код) работает без проблем зависимостей в Eclipse Indigo. Изменить: только что выяснили, что это исключение вызвано JDK7, а не используемой версией Eclipse.

4b9b3361

Ответ 1

Тем временем мне удалось решить эти проблемы.

Первая попытка:

  • Обновить до самого последнего JDK (1.7.0u15 на данный момент)
  • Клонировать код из Github снова
  • Установить Eclipse Indigo
    • переустановка Eclipse решила проблемы с JDK6, теперь он просто начинается с JDK7 без дополнительной настройки.
  • Установите плагин Scala
  • создайте новый проект Eclipse, используя sbt eclipse
  • импортировать созданный проект

Упс, не работает! Я все еще получаю это исключение:

value getPlatformMXBean is not a member of object java.lang.management.ManagementFactory

... что странно, потому что Eclipse теперь действительно работает с JDK7. Не копая глубже, я просто дал Eclipse Juno выстрел.

Вторая попытка:

  • Сделайте все, что указано выше
  • Установите Eclipse Juno вместо Indigo
  • Да, это работает!:)

Вывод:

Так что я не уверен, почему, но Eclipse Indigo как-то не нравится getPlatformMXBean. Это не похоже на проблему с JDK, но Eclipse.