Ответ 1
Я играю с JDK8 Lambda Developer Preview в течение нескольких недель. Ниже я делаю, чтобы упростить компиляцию и тестирование моего кода:
Настройка JEdit для компиляции кода JDK 8
В следующем руководстве описано, как настроить Apache Ant и JEdit, чтобы легко скомпилировать исходный код с помощью JDK 8 Lambda Expressions и новые функции API в JDK 8 Lambda Developer Preview.
Это то, что я делаю на сегодняшний день, в основном потому, что никакая среда IDE не поддерживает эти функции JDK 8.
Загрузите следующее:
Затем создайте следующую структуру каталогов:
Sanbox
|-----jdk8
|-----ant
|-----projects
- Поместите несжатую JDK-сборку в каталог jdk8.
- Поместите несжатый Apache Ant в каталог Ant.
- Каталог проектов будет для проектов JEdit.
Затем установите следующие плагины JEdit:
- Ant Ферма
- Java Fold
- Project Builder
- Просмотр проектов
- Мастер проектов
- SVN Plugin (я использую это, чтобы синхронизировать мои проекты с моим репо, возможно, вам это не понадобится)
Теперь настройте свой Apache Ant:
- Создайте файл в домашней папке с именем antrc_pre.bat(т.е.% USERPROFILE%\antrc_pre.bat).
- (Примечание: если вы используете Linux, вы можете настроить это в ~/.ant/ ant.conf).
- Этот файл будет запущен Apache Ant перед запуском любых задач, поэтому это место для настройки или переопределения того JDK, который вы хотите использовать, определяя переменную JAVA_HOME.
- В верхней части этого файла укажите переменную JAVA_HOME и укажите ее в каталог, где установлен JDK8. В некотором роде:
SET JAVA_HOME=C:\Sanbox\jdk8
- Обязательно прокомментируйте это, как только закончите сеанс JDK 8, чтобы Ant продолжал использовать конфигурацию по умолчанию.
Время настройки JEdit Ant Плагин
- В JEdit перейти к плагинам → Параметры плагина → Ant Ферма → Параметры сборки
- В диалоговом окне выберите опцию: "Запустите Ant цели с помощью внешнего файла script/build"
- Выберите ant.bat script (т.е. C:\Sandbox\ant\bin\ant.bat).
- Примечание. Если вы используете Ant 1.8.x, вероятно, вам нужно добавить свойство в раздел свойств плагина: build.compiler = javac1.7, иначе вы получите ошибку при компиляция с JDK 8. Однако у меня не было этой проблемы с Ant 1.7.
Затем создайте новый Java-проект:
- В JEdit перейдите к плагинам → Project Builder → Создать новый проект
- Выберите приложение Java и нажмите "Далее"
- Выберите каталог проектов в качестве места для поиска файлов (т.е. C:\Sanbox\projects).
Voila! На этом этапе JEdit представит четыре кнопки на панели инструментов: сборка приложений, компиляция, очистка и запуск приложения. Они основаны на файле build.xml и выполняются в соответствии с соответствующими задачами Ant. Вы можете пойти, вы можете начать писать лямбда-выражения и использовать новые API: -)
Parallelism Пример
В последнем предварительном просмотре разработчика (b50) еще не реализована небольшая параллелизма. Я вижу, что они делают больше работы в отдельной ветке (если вы хотите загрузить и построить источник OpenJDK8, хотя).
Однако вы можете использовать метод Arrays.parallell
, который создает обертку ParallelIterable
по массиву. Это можно использовать для проверки некоторых функций parallelism.
Я сделал пример, чтобы найти простые числа в большом массиве. Я мог проверить, что все мои четыре ядра используются, когда я запускаю это параллельно.
Integer[] source = new Integer[30000000];
for(int i=0; i<source.length; i++)
source[i] = i;
ParallelIterable<Integer> allIntegers = Arrays.parallel(source).filter(isPrime);
Iterable<Integer> primes = allIntegers.into(new LinkedList<Integer>());
Этот компилируется и работает отлично в моем проекте JEdit с Apache Ant 8.4.x и JDk8-b50.
Надеюсь, это поможет.
PD:
Я не определял предикат isPrime
в приведенном выше коде, чтобы не затушевывать простоту примера. Я уверен, что eveyone может легко определить предикат примитива, чтобы попробовать этот код.