Компиляция с ecj на Termux не дает лямбда-выражений - PullRequest
0 голосов
/ 04 мая 2019

Компиляция с ecj в Termux выдает следующее сообщение об ошибке:

Лямбда-выражения разрешены только на уровне источника 1.8 или выше.

Параметры не были указаны при запуске инструмента.

Компиляция с ключом - 1.8 производит следующий вывод:

ecj -1.8 Composite2

дублирующая спецификация настройки соответствия: -1,8

Composite2 - это каталог, в котором находится мой исходный код.

Я попробовал следующее:

ecj -source 1.8 -target 1.8 Composite2

Уровень соответствия '1.7' несовместим с уровнем источника '1.8'.Требуется уровень соответствия «1,8» или выше.

Источник доступен здесь

Есть ли какие-либо настройки или переключатели, которые мне не хватает?Я не знаком с использованием ecj в качестве компилятора.

Можете ли вы помочь?

Похоже, есть решения, такие как Retro Lambda и обратная портирование, чтобы заставить исходный код Java 8 работать на 7 или более ранних версиях.Я все еще должен попробовать это все же.Там только один человек может проверить.(См. Комментарии ниже для уточнения).


Обходным путем может быть установка Arch Linux на Termux. .Тем не менее, командная строка может быть немного ошибочной.

Затем вы можете установить Open JDK 8 и eclipseecj, используя менеджер пакетов pacman.

Это сработало;ecj теперь компилирует код 1.8.

Я хотел бы избежать установки полного JDK, поскольку он создает избыточность и занимает дополнительное место.

...