首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Termux上用ecj编译会失败lambda表达式。

在Termux上用ecj编译会失败lambda表达式。
EN

Stack Overflow用户
提问于 2019-05-04 13:12:00
回答 2查看 602关注 0票数 0

在Termux上使用ecj进行编译会产生以下错误消息:

Lambda表达式只允许在源代码级别1.8或以上。

在运行该工具时没有指定任何选项。

使用开关- 1.8进行编译会产生以下输出:

代码语言:javascript
复制
ecj -1.8 Composite2

重复合规设定规范:-1.8

Composite2是我的源代码所在的目录。

接下来,我尝试了以下几种方法:

代码语言:javascript
复制
ecj -source 1.8 -target 1.8 Composite2

遵从级别'1.7‘与源级别'1.8’不兼容。合规级别“1.8”或更高是必需的。

源是可用的这里

有没有我缺少的设置或开关?我不熟悉使用ecj作为编译器。

你能帮上忙吗?

似乎有一些解决方案,如Retro和backporting,可以使Java 8源代码在7或更高版本上工作。不过,我还没试过。只有一个人可以退房。(澄清情况见下文评论)。

解决办法可能是安装Termux上的Arch Linux。。不过,命令提示符可能有点错误。

然后可以使用安装Open 8和eclipseecj。

这是可行的;ecj现在已经编译了1.8代码。

我希望避免安装完整的JDK,因为它引入了冗余并占用了额外的空间。

EN

回答 2

Stack Overflow用户

发布于 2019-12-19 21:45:42

在Android7上的Termux不支持任何超过7的java版本。Termux上的against最多支持Java 13。最好的选择是在上安装OpenJDK,并对ecj使用javac。在Arch上,ecj还存在其他问题,比如只支持Java 8。

票数 1
EN

Stack Overflow用户

发布于 2019-12-19 17:57:09

这似乎是ecj中的一个bug,这里报告了bug.cgi?id=535969,在这里修补了bug.cgi?id=477894

使用Eclipse4.9 m2构建id: I20180731-0800进行验证

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55982879

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档