问题标签 [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 - 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 或我的本地安装的问题。
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.
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
.