Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala编译器抛出:java.lang.IllegalAccessError:Class';scala.tools.nsc.transform.pathmat.PatternExpansion$ExtractorAlignment';_Scala_Scala 2.13 - Fatal编程技术网

Scala编译器抛出:java.lang.IllegalAccessError:Class';scala.tools.nsc.transform.pathmat.PatternExpansion$ExtractorAlignment';

Scala编译器抛出:java.lang.IllegalAccessError:Class';scala.tools.nsc.transform.pathmat.PatternExpansion$ExtractorAlignment';,scala,scala-2.13,Scala,Scala 2.13,将我的一个项目升级到scala 2.13.4后,出现以下错误: [error] java.lang.IllegalAccessError: Class 'scala.tools.nsc.transform.patmat.PatternExpansion$ExtractorAlignment' no access to: class 'scala.collection.immutable.LazyList$State' [error] at java.base/java.lang.invo

将我的一个项目升级到scala 2.13.4后,出现以下错误:

[error] java.lang.IllegalAccessError: Class 'scala.tools.nsc.transform.patmat.PatternExpansion$ExtractorAlignment' no access to: class 'scala.collection.immutable.LazyList$State'
[error]     at java.base/java.lang.invoke.MethodHandle.sendResolveMethodHandle(MethodHandle.java:1237)
[error]     at java.base/java.lang.invoke.MethodHandle.getCPMethodHandleAt(Native Method)
[error]     at java.base/java.lang.invoke.MethodHandle.getAdditionalBsmArg(MethodHandle.java:935)
[error]     at java.base/java.lang.invoke.MethodHandle.resolveInvokeDynamic(MethodHandle.java:1084)
[error]     at scala.tools.nsc.transform.patmat.PatternExpansion$ExtractorAlignment.fromProductSelectors(PatternExpansion.scala:166)
(这里有完整的stacktrace,因为它相当长)

我没有改变代码库中的任何内容,也没有在我的项目中积极使用LazyList。 更复杂的是:它在我的机器上工作,在管道中失败(相同的java版本,相同的sbt版本(SBT1.4.4(采用OpenJDK java 11.0.8)),我清除了所有缓存)

这是一个多项目构建,顶层build.sbt看起来像,在子项目中是以下内容:

由于它很难复制,而且它是一个内部项目,具有进一步的内部依赖性,这是我所能提供的全部


我的问题是:有人知道是什么原因造成的吗?我能做什么。或者,如果有人知道如何进一步调试这个问题,或者知道如何尝试获取更多错误信息。

这最终可以通过将java从11.0.8升级到11.0.9(采用OpenJDK)来解决。这是为什么以及如何起作用的?不知道。

你能分享一下你的
build.sbt
吗?在@TomerShetah
java.base/java.lang.invoke.MethodHandle上面链接它们看起来像java 9+一样。你能试着切换到Java8吗?不,实际上不行,因为我们有使用java9+特性的java依赖项。我不确定这是否是一个普遍的java11问题,因为它在我的机器上使用java11设置。我们遇到了完全相同的问题,尽管有点棘手:sbt告诉我们使用jdk 11.0.10,而实际上我们在10.0.8上也有一个jdk,结果证明它实际上就是使用的那个。移除另一个jdk就成功了。