问题标签 [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 投票
2 回答
672 浏览

java - JDK 17:Switch 语句导致 java.lang.VerifyError:操作数堆栈上的类型错误

刚刚在 Eclipse 2021-09 上尝试了 JDK17,但它失败了java.lang.VerifyError,这本身并没有多大帮助。我将它追踪到一个 switch 语句,该语句得到一个从一个Map或另一个泛型类型中提取的值。如果我在 switch 语句中使用局部变量,一切都会按预期工作。

测试代码:

这会引发以下错误:

还没有在 11 和 17 之间尝试另一个 JDK。交换机在这些版本之间获得了一些新功能,所以可能就是这样。也许这是 Eclipse JDT 或我的本地 JDK 中的问题,因此任何尝试在另一个配置或 IDE 上重现此错误都会很棒。尝试在 macOS 上使用 OpenJDK(内部版本 17+35-2724)。

编辑: 也发生在

很可能是新 JDT for Java 17 或我的本地安装的问题。

0 投票
1 回答
68 浏览

maven - Building maven projects with JDT Core compiler

I am a new Maven user. I am aware that the default compiler which Maven uses to build its projects with is Javac. However, I want to use JDT Core compiler in order to build.

I tried adding this plugin into my plugins in my root pom, but it doesn't work.

would appreciate any help.

0 投票
1 回答
62 浏览

java - 带有模块的 AspectJ (ajc)

我正在使用 AspectJ 1.9.7,并且正在尝试使用ajc. 假设我有一个名为的模块test和以下树:

使用javac我用来编译它的命令是:

一切都很好,当然没有编织过程。相反,如果我尝试使用ajc( ajc --module-source-path . -d ../bin -m test) 运行同一行,则输出为:

我想此时该-m选项不受支持。我发现了这个问题,用户说可以在编译过程中指定使用 javac-usejavac的选项,但至少对我而言,它不起作用,甚至无法识别该选项。

1)如何--module-source-path使用ajc


假设--module-source-path不支持,我选择了该--module-path选项。同样,使用javac,一切正常:

但是切换到ajc( ajc -d bin --module-path test $(find . -name *.java -o -name *.aj)),输出是这样的:

删除时相同的输出--module-path

2)有没有办法编译一个模块ajc

另一种方法是:

它可以工作,但必须有一种方法可以做到这一点ajc,鉴于此,--module-path并且--module-source-path记录在man的模块编译选项下。ajc我不确定这是否相关,但我正在使用openjdk 15.0.2 2021-01-19.