Wik*_*ska 19 java aspectj jvm-arguments gradle java-17
将 Java 版本更改为 17 后,我无法构建 Gradle 项目。
我正在使用 Gradle 7.3.1 版本,并且 Gradle 属性中有以下行:
org.gradle.jvmargs=-Dfile.encoding=UTF-8 -Xms1g -Xmx4g -XX:+UseG1GC -XX:+CMSClassUnloadingEnabled
Run Code Online (Sandbox Code Playgroud)
然后我得到以下错误
Unrecognized VM option 'CMSClassUnloadingEnabled'
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Run Code Online (Sandbox Code Playgroud)
如果我删除-XX:+CMSClassUnloadingEnabled然后我收到此错误:
Unable to make field private int java.lang.reflect.Field.modifiers accessible: module java.base does not "opens java.lang.reflect" to unnamed module @1b9ee3e0
Run Code Online (Sandbox Code Playgroud)
Run Code Online (Sandbox Code Playgroud)Unable to make field private int java.lang.reflect.Field.modifiers accessible: module java.base does not "opens java.lang.reflect" to unnamed module @1b9ee3e0
Yeah you are right that's because of AspectJ
Assuming that you are using AspectJ load-time weaving (LTW) rather than compile-time weaving, maybe you ought to read the AspectJ release notes for each version since 1.9.7, supporting Java 16+:
Use LTW on Java 16+
请注意,如果您想在 Java 16+ 上使用加载时编织,编织代理会与JEP 396(默认强封装 JDK 内部)以及相关的后续 JEP 发生冲突。因此,您需要设置 JVM 参数
--add-opens java.base/java.lang=ALL-UNNAMED才能启用切面编织。这是因为编织器使用内部 API,而在不同的类加载器中定义类时,我们尚未找到足够的替代品。
| 归档时间: |
|
| 查看次数: |
14745 次 |
| 最近记录: |