问题标签 [ecj]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
129 浏览

java - Java 编译器是否存在“赋值无效”警告/错误的错误

似乎 java 编译器 (Jdk8) 缺少像 'j = j++;' 这样的赋值警告 这没有任何效果,而是会为“j = ++j;”之类的赋值生成警告 实际上有效果。我附上了一个演示脚本。

请注意,您必须选择适当的标志来报告 java 编译器java 编译器设置中的分配错误

这是java编译器的错误吗?

0 投票
1 回答
54 浏览

java - 使用 Eclipse Batch Compiler 时有哪些参考信息

在阅读 Java 的Eclipse Batch Compiler Documentation时,我遇到了标志,-referenceInfo其描述如下:

计算参考信息。这仅在连接到构建器时才有用。否则参考信息是无用的。

什么是参考信息?这些信息是关于对象引用的吗?有没有可用的文档?

0 投票
0 回答
213 浏览

java - Ant Classloader 任务和 java 13

我正在将我们的应用程序从 Java 8 升级到 Java 13。我们在构建过程中使用 Eclipse ECJ。为了让它工作,我们的 ant 脚本有:

当 Ant 在 Java 13 下运行并出现以下错误时,这将失败:

任何解决方法的建议?

0 投票
0 回答
313 浏览

android - 在 Termux 的设备上使用 appcompat 库重建 android.jar

该项目https://github.com/BuildAPKs/buildAPKs在 Android 的 Termux 中的设备上构建 APK。在没有工件的情况下编译时,常见的错误与 appcompat 有关,即Error retrieving parent for item: No resource found that matches the given name 'Theme.AppCompat.Light.DarkActionBar'.

使用启用库构建时,APK 文件大小要大得多,即在智能手机上的BuildAPK 中没有启用库com.google.android.divideandconquer.apk的情况下构建到35.4K 。在启用库的情况下构建时大约为500K 。在设备上重建 aapt、dx 和/或 ecj 包以在 jar 文件中包含 appcompat 库可能会解决此文件输出大小问题。

如何在智能手机上的 Termux 中构建包 aapt、dx 和/或 ecj 以在 jar 文件中包含 appcompat?如果在手持设备上无法在 Termux 和 Termux PRoot 中构建这些包,那么如何在传统的 Linux 机器上完成呢?

0 投票
1 回答
515 浏览

java - 是否不再维护独立的 ecj(Eclipse Java 编译器)包?

我们在我们的项目中使用ecjfrom org.eclipse.jdt.core.compiler,但是看起来该包自 2016 年 10 月 7 日以来没有更新。它不再维护了吗?

在此处输入图像描述

还是我应该切换到ecjfrom org.eclipse.jdt?看起来版本号(3.20.0)比前者旧:4.6.1

0 投票
1 回答
110 浏览

java - Eclipse 的 ecj 编译器是可扩展的吗?

我对修改 Java 语法和一些隐式范式很感兴趣。由于我使用 Eclipse 进行开发,它提供了自己的编译器,也可以独立使用,我想知道是否无法扩展 ecj 以尊重其他语法规则(并正确处理它们)。

我的语法更改都可以通过从 AST 中删除元素并创建一些新元素来解决,因此我假设我想要做的事情是可能的,而无需深入研究字节码。

本质上,我想做的可以通过在实际编译之前“虚拟地”修改源代码来完成。但是我怀疑这样做会弄乱源映射,这会使调试变得很糟糕。

旁注:我知道 Lombok 项目,它扩展和更改了类编译,但是 Lombok 仅使用注释,并且严格来说不修改语法。所以我想做的是对语言规范更具侵入性。

0 投票
1 回答
310 浏览

eclipse - Java 代码在 Intellij 中失败,但在 eclipse 中失败,方法不明确

我有以下 Java 类(带有嵌套类/接口)。main从 Eclipse(版本:2019-09 R (4.13.0))中运行该方法时,我得到以下输出:

这是 Eclipse 使用的命令行:

从 Intellij(IDEA 2019.3.3(社区版))中运行相同的代码时,我得到以下输出:

为什么我在 Intellij 中出现此错误,但在 Eclipse 中却没有?有没有办法解决这个问题,所以它在 Intellij 中运行没有错误?

这是Java类:

编辑 在这种情况下,页面接口和 AbstractPage 类位于客户端无法更改的库中。但客户端应该能够扩展 Page 接口。

0 投票
2 回答
517 浏览

java - var 是什么意思用Java做?

我的一个朋友注意到了

在 Java 中有效。事实证明, 的类型list被评估为ArrayList<Double>

使用时var<Integer> list = new ArrayList<>();list就是ArrayList<Object>

我们俩都无法弄清楚泛型类型的var作用,因为它似乎被忽略了。但如果是这样,为什么这首先在语法上是正确的?

0 投票
0 回答
46 浏览

java - Eclipse java ASTParser ArrayIndexOutOfBoundsException 错误

我正在尝试在 Eclipse 中制作 Java 代码的 AST。

我正在关注https://help.eclipse.org/2019-12/index.jsp?topic=%2Forg.eclipse.jdt.doc.isv%2Freference%2Fapi%2Forg%2Feclipse%2Fjdt%2Fcore%2Fdom的示例%2FASTParser.html

作为链接的示例,我编写代码来创建示例 AST

但是,运行代码后,我有 ArrayIndexOutOfBoundsException 错误。

完整的代码和错误信息附在下面

有谁知道为什么会发生这个错误?

我的代码

错误信息

在错误消息中,问题行(ASTtest.java:78)是这个

0 投票
0 回答
220 浏览

java - Eclipse JDT ASTParser - 在 lambdas 中解析

我正在使用Eclipse JDT AST来解析 Java 源代码,目的是识别给定方法的所有用途。我正在使用 eclipse.jdt.core 3.21.0。

虽然该工具在大多数情况下都能正确解析方法绑定,但我遇到了一个问题,如果该方法在 lambda 中使用,如果 lambda 是解析器未知的类型,则它无法解决它们。

例如,在以下代码中,第一次调用 GuavaObjects.equal将解析,但第二次不会:

在这个例子中,我知道我正在寻找的方法调用,并且我可以将该方法 (Guava) 的类文件提供给 ASTParser。但是因为该工具需要分析一个非常大的代码库,而且并不是所有的依赖关系都是已知的,所以我不能为代码库中的所有类型传递类文件,所以像org.joda.time.LocalDate are unknown. 对于像第一个这样的调用来说,这不是问题,但是像第二个这样的调用无法解决,我正在努力找出原因。

我已经在这里结束了我的这个例子和我的 ASTParser 创建:

输出是: