写点什么

Intellij 2023.3Groovy 项目报错缺陷分享

作者:FunTester
  • 2023-12-19
    河北
  • 本文字数:1104 字

    阅读完需:约 4 分钟

2023.3 最新版,据悉是对 JDK 21 的虚拟线程支持更好的,为了体验更加丝滑就升级了。结果一下子就悲催了。看到了下面的报错。


Executing pre-compile tasks…Running 'before' tasksChecking sourcesBuilder "Groovy stub generator" requested rebuild of module chunk "groovy-reproducer"Groovyc: While compiling [groovy-reproducer]: java.lang.reflect.InvocationTargetException  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)Caused by: java.lang.NoClassDefFoundError: com/intellij/util/containers/IntObjectHashMap$ArrayProducer  at com.intellij.util.lang.java6.ClassPath.<init>(ClassPath.java:39)  at com.intellij.util.lang.java6.UrlClassLoader.createClassPath(UrlClassLoader.java:233)
Caused by: java.lang.ClassNotFoundException: com.intellij.util.containers.IntObjectHashMap$ArrayProducer at java.net.URLClassLoader.findClass(URLClassLoader.java:387) at java.lang.ClassLoader.loadClass(ClassLoader.java:418) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352) at java.lang.ClassLoader.loadClass(ClassLoader.java:351) ... 14 moreCannot find class loader for groovyc; optimized=true; sun.misc.Launcher$AppClassLoader@6d06d69c
复制代码


经过一些搜索和查证,发现这个问题在 12 月 9 号已经有人在 Intellij 官方论坛中提到了,原因是在 IJPL-126 迁移 intellij 源代码以使用 JDK 的标准功能接口,而不是自定义接口。


受影响版本是:


2023.3 Beta (233.11799.6), 2023.3 Beta 2 (233.11799.30), 2023.3 Beta 3 (233.11799.67), 2023.3 RC (233.11799.196), 2023.3 (233.11799.241)
复制代码


解决办法 3 个:


  1. Intellij 降级

  2. 在设置中 shared build process VM option 指定 -Dgroovyc.in.process=true

  3. 坐等新版,预计 12 月 19 号发布


针对方案 2 中的设置项,补充资料


-Dgroovyc.in.process=true


是 Groovy 编译器的系统属性设置。这个属性用于告知 Groovy 编译器在当前 Java 进程中运行。


Groovy 编译器通常可以作为独立的进程运行,但是通过设置 -Dgroovyc.in.process=true 这个系统属性,编译器会在当前的 Java 进程中运行,而不是作为外部进程启动。


这个属性有助于在某些情况下提高性能和减少资源的消耗,特别是对于需要反复执行 Groovy 编译任务的情况。通过在同一 Java 进程中运行编译器,可以避免启动额外的进程以及相关的开销。


请注意,这个属性的使用可能会影响应用程序的行为,尤其是在资源利用和性能方面。务必在适当的场景下测试和评估这个属性对你的应用程序的影响,以确定是否适合在生产环境中使用。


发布于: 刚刚阅读数: 3
用户头像

FunTester

关注

公众号:FunTester,800篇原创,欢迎关注 2020-10-20 加入

Fun·BUG挖掘机·性能征服者·头顶锅盖·Tester

评论

发布
暂无评论
Intellij 2023.3Groovy项目报错缺陷分享_FunTester_InfoQ写作社区