Поддержка Eclipse для Java 8 пока недоступна для загрузки. Если вы хотите поиграть с ним, вы должны его построить. Страница Eclipsepedia JDT Core / Java8 содержит инструкции по настройке среды разработки с источником для развивающейся поддержки Java 8 в инструментах разработки Eclipse Java (JDT). В инструкциях не хватает нескольких частей; Я вернусь позже и добавлю их.
Я начал с установки Java Development Kit (JDK) 8. Я не особо задумывался о RPM; вместо этого я просто пошел к источнику . Для Linux это файл tar.gz, который я только что распаковал в рабочий каталог.
Затем я загрузил последнюю версию Eclipse SDK ( 4.4M5 на момент написания этой статьи). Это не заявленное требование, но я решил, что это будет хорошей отправной точкой. Я настроил параметр «vm» в файле eclipse.ini для использования Java 8 JRE, включенного в загруженный JDK. Я добавил « Git Team Provider » в SDK из репозитория программного обеспечения Luna.
JDT распространяется по небольшому количеству Git-репозиториев:
- JDT Core git: //git.eclipse.org/gitroot/jdt/eclipse.jdt.core.git
- Пользовательский интерфейс JDT git: //git.eclipse.org/gitroot/jdt/eclipse.jdt.ui.git
- Отладка JDT git: //git.eclipse.org/gitroot/jdt/eclipse.jdt.debug.git
Также требуются некоторые обновления Equinox (я считаю, что это прежде всего для обеспечения требуемой среды исполнения Java 8)
Во всех репозиториях код содержится в ветке BETA_JAVA8. Я клонировал все эти репозитории и использовал удобную функцию «Импортировать все проекты», чтобы автоматически перенести весь код в мое рабочее пространство.
На этом этапе мой Package Explorer содержал много красных меток. Многие из плагинов настроены для компиляции с очень специфическими версиями Java, которые я еще не установил. Итак, я выследил JDK для Java 1.4 , 5 и 6 (у меня уже была установлена Java 7). Я решил скачать самораспаковывающиеся архивы.
Я добавил каждый из них на страницу «Установленные JRE» в настройках.
Затем я настроил отображения среды выполнения для каждой JRE.
Это сделало большинство, но не все, красные следы исчезли.
В соответствии с инструкциями я скачал Eclipse SDK 4.3.1 для использования в качестве чистой целевой платформы и API-интерфейса (хотя я подозреваю, что было бы неплохо использовать 4.4M5 для обоих). Честно говоря, я не помню, исчезли ли еще какие-либо красные метки на этом шаге.
Я решил пойти на это, несмотря на оставшиеся красные метки (которые кажутся тестами, которые я не настроил должным образом), и настроить конфигурацию запуска. Оно живое.
Я начал немного возиться с лямбда-выражениями .
Короче говоря, компилятор Eclipse для Java (ECJ) хорошо справляется с ними. Помощник по содержимому еще не совсем готов, но синтаксически правильные лямбда-выражения компилируются и запускаются, как и ожидалось. Из активности в Bugzilla ясно, что это быстро продвигается вперед.
Как старый парень, который знает Smalltalk , мой первый инстинкт — создавать Smalltalk-подобные коллекции на Java.
Болтовня:
1
2
3
4
5
6
7
8
9
|
| employees names | employees := OrderedCollection new add: (Employee named: 'Wayne' ); add: (Employee named: 'Joel' ); add: (Employee named: 'Jon' ); add: (Employee named: 'Anthony' ); yourself. names := employees collect: [:employee | employee name]. output >> an OrderedCollection( 'Wayne' 'Joel' 'Jon' 'Anthony' ) |
Java 8:
1
2
3
4
5
6
7
|
OrderedCollection employees = new OrderedCollection(); employees.add( new Employee( "Wayne" )); employees.add( new Employee( "Joel" )); employees.add( new Employee( "Jon" )); employees.add( new Employee( "Anthony" )); OrderedCollection names = employees.collect(employee -> employee.name); output >> [Wayne, Joel, Jon, Anthony] |
Подробнее об этом позже.
Обратите внимание на отказ от ответственности в нижней части страницы JDT Core / Java8 :
Работа в процессе. Содержимое ветви BETA_JAVA8 будет обновляться по мере внесения изменений в Спецификацию JSR. Пожалуйста, используйте ранние сборки доступа только в режиме тестирования / оценки, а не в реальной среде разработки. Если вам нужна помощь в этом, пожалуйста, свяжитесь с командой JDT / Core через форум или Bugzilla .