问题标签 [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.
java - Java 编译器是否存在“赋值无效”警告/错误的错误
似乎 java 编译器 (Jdk8) 缺少像 'j = j++;' 这样的赋值警告 这没有任何效果,而是会为“j = ++j;”之类的赋值生成警告 实际上有效果。我附上了一个演示脚本。
请注意,您必须选择适当的标志来报告 java 编译器java 编译器设置中的分配错误
这是java编译器的错误吗?
java - 使用 Eclipse Batch Compiler 时有哪些参考信息
在阅读 Java 的Eclipse Batch Compiler Documentation时,我遇到了标志,-referenceInfo
其描述如下:
计算参考信息。这仅在连接到构建器时才有用。否则参考信息是无用的。
什么是参考信息?这些信息是关于对象引用的吗?有没有可用的文档?
java - Ant Classloader 任务和 java 13
我正在将我们的应用程序从 Java 8 升级到 Java 13。我们在构建过程中使用 Eclipse ECJ。为了让它工作,我们的 ant 脚本有:
当 Ant 在 Java 13 下运行并出现以下错误时,这将失败:
任何解决方法的建议?
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 机器上完成呢?
java - Eclipse 的 ecj 编译器是可扩展的吗?
我对修改 Java 语法和一些隐式范式很感兴趣。由于我使用 Eclipse 进行开发,它提供了自己的编译器,也可以独立使用,我想知道是否无法扩展 ecj 以尊重其他语法规则(并正确处理它们)。
我的语法更改都可以通过从 AST 中删除元素并创建一些新元素来解决,因此我假设我想要做的事情是可能的,而无需深入研究字节码。
本质上,我想做的可以通过在实际编译之前“虚拟地”修改源代码来完成。但是我怀疑这样做会弄乱源映射,这会使调试变得很糟糕。
旁注:我知道 Lombok 项目,它扩展和更改了类编译,但是 Lombok 仅使用注释,并且严格来说不修改语法。所以我想做的是对语言规范更具侵入性。
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 接口。
java - var 是什么意思用Java做?
我的一个朋友注意到了
在 Java 中有效。事实证明, 的类型list
被评估为ArrayList<Double>
。
使用时var<Integer> list = new ArrayList<>();
,list
就是ArrayList<Object>
。
我们俩都无法弄清楚泛型类型的var
作用,因为它似乎被忽略了。但如果是这样,为什么这首先在语法上是正确的?
java - Eclipse java ASTParser ArrayIndexOutOfBoundsException 错误
我正在尝试在 Eclipse 中制作 Java 代码的 AST。
作为链接的示例,我编写代码来创建示例 AST
但是,运行代码后,我有 ArrayIndexOutOfBoundsException 错误。
完整的代码和错误信息附在下面
有谁知道为什么会发生这个错误?
我的代码
错误信息
在错误消息中,问题行(ASTtest.java:78)是这个
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 创建:
输出是: