Есть ли способ скомпилировать Java 7 в Scala IDE?

Я загрузил пакет Scala IDE от Typesafe и теперь пытаюсь заставить его работать с моим проектом, который использует Scala 2.9.2 и Java 7. Моя проблема в том, что Eclipse по-прежнему компилирует его с Java 6, и я получаю эти неприятные ошибки о javax.swing.JComboBox does not take type parametes.

Я запускаю eclipse с JAVA_HOME, указывающим на мой jdk7/jre каталог, и добавил в проект библиотеки JRE 7. Что я делаю неправильно?

РЕДАКТИРОВАТЬ: По какой-то причине кажется, что только компилятор Scala компилируется с Java 6 - если я использую простой .java файл, кажется, что он скомпилирован с правильной версией. Как могло случиться так, что Eclipse использует два разных jdk в одном проекте?


person Rogach    schedule 23.10.2012    source источник
comment
Невероятно, но невозможно указать sbt, с какой версией библиотек Java вам нужно скомпилировать свой проект. См. Этот вопрос: stackoverflow.com/questions/7701692/. Недавно я снова спросил об этом в списке рассылки sbt, и никто не ответил, так что, по-видимому, без изменений.   -  person Luigi Plinge    schedule 23.10.2012
comment
@LuigiPlinge - Ну, это именно то, что я делаю, когда работаю с sbt. Но теперь я использую Eclipse, и он запускает sbt за кулисами? Есть ли способ повлиять на то, какой jre Eclipse использует при запуске sbt?   -  person Rogach    schedule 23.10.2012
comment
Он не использует sbt для компиляции, он использует некоторые библиотеки, чтобы решить, что компилировать. Scala-ide использует для компиляции компилятор презентаций.   -  person Matthew Farwell    schedule 23.10.2012
comment
@MatthewFarwell - Так почему же эти библиотеки до сих пор используют java 6? Даже если eclipse запущен с java 7?   -  person Rogach    schedule 23.10.2012
comment
Когда вы говорите «компилятор scala компилируется с java 6», вы имеете в виду, что сгенерированные файлы классов неверны или что используемые вами jar-файлы неверны и все еще используют jdk 1.6 jar-файлы? IIRC правильно, используемые jar-файлы находятся в пути сборки проекта, поэтому это должно работать.   -  person Matthew Farwell    schedule 23.10.2012
comment
Что определено в свойствах вашего проекта в разделах «Путь сборки Java» и «Компилятор Java»?   -  person Brian Smith    schedule 23.10.2012
comment
@MatthewFarwell - Я использую правильные банки, но он все равно жалуется javax.swing.JComboBox does not take type parametes. Это указывает на то, что он использует java 6, потому что эти параметры типа были добавлены в Java 7.   -  person Rogach    schedule 24.10.2012
comment
@BrianSmith - В пути сборки java - Scala-2.9.3 - **, JavaSE-1.7. В компиляторе Java - используйте соответствие из среды выполнения «JavaSE-1.7» в пути сборки.   -  person Rogach    schedule 24.10.2012


Ответы (1)


Eclipse IDE запускается с любой JRE по умолчанию для вашей среды, например с той, которая указана в JAVA_HOME.

В этом он такой же, как и любое другое Java-приложение на вашем компьютере.

Jdk, используемый для компиляции и запуска кода в ide, полностью независим и определен в настройках в eclipse в разделе

Java> Установленные JRE

Вы можете добавить туда любую среду выполнения или SDK и выбрать стандартную, используемую для новых проектов.

Кроме того, вы можете переопределить это предпочтение для каждого проекта в свойствах проекта

Таким образом, вывод компиляции не зависит от Java-среды вашего компьютера и может быть определен для каждого проекта отдельно.

Что касается Scala-IDE, мне нужно время, потому что я не установил его на моем рабочем столе. Я проверю позже.

person pagoda_5b    schedule 23.10.2012
comment
Проблема как раз в том, что я уже модифицировал JAVA_HOME и друзья, и простой код Java скомпилирован с Java 7. Единственная проблема - это код scala, который, кажется, все еще использует старый jdk. - person Rogach; 24.10.2012
comment
В примечаниях к выпуску [Scala IDE для Eclipse 2.0.2 RC1) () есть примечание, в котором говорится: Лучшая поддержка JDK 7 - компилятор представления Scala раньше (неправильно) использовал работающий JDK, вместо этого из того, что настроено на пути сборки. Теперь он будет соблюдать правильный JDK, а это означает, что Eclipse может работать на JDK 6, но ваш проект может компилироваться с JDK 7. - person pagoda_5b; 24.10.2012
comment
Не могу сказать, связано ли это с вашей проблемой, так как вы обновили JVM, работающую под управлением eclipse. Какую версию Scala IDE вы используете? - person pagoda_5b; 24.10.2012
comment
О странице написано 2.1-M2-20120914-Typesafe. - person Rogach; 24.10.2012
comment
Извините, я не могу найти ничего об этом в списке рассылки, возможно, вам стоит попросить помощи там - person pagoda_5b; 25.10.2012