错误:scala:Scala 编译器库中没有“scala-library*.jar”

Posted

技术标签:

【中文标题】错误:scala:Scala 编译器库中没有“scala-library*.jar”【英文标题】:Error: scala: No 'scala-library*.jar' in Scala compiler library 【发布时间】:2014-07-24 01:32:41 【问题描述】:

环境:播放 2.3.0/Scala 2.11.1/IntelliJ 13.1

我使用 Typesafe Activator 1.2.1 创建了一个带有 Scala 2.11.1 的新项目。创建项目后,我运行gen-idea。生成的IDEA项目编译失败,报错:

Error: scala: No 'scala-library*.jar' in Scala compiler library in test

我做错了吗?解决方法?

【问题讨论】:

显然一种解决方法是创建一个新的 IntelliJ scala 项目,选择安装 2.11 的 scala 主目录,选中该框以确保它成为“全局”库,关闭此项目,返回到原始项目,删除构面,并使用新的全局库重新添加。啊啊啊……当然有更好的方法。我喜欢 Scala 语言,但工具的脆弱性真的让我很生气。 你不需要在 IDEA 13.1 中使用gen-idea 任务。现在内置了 SBT 支持。您只需要通过 File/Import project 菜单项导入 SBT 项目。 完美,弗拉基米尔。甚至比gen-idea 还要好。您可以将其作为答案。 使用通过新 Scala SBT 项目路径的默认路径,我收到 IntelliJ 2017.2.5 Scala 插件 2017.2.11 的此错误。 【参考方案1】:

    打开文件 -> 项目结构 -> 库,删除其中的任何 scala sdk,例如下图中的 scala-sdk-2.11.8。

    单击 +,然后单击 Scala SDK。

    从列表中选择正确的 Scala SDK,对我来说,就是图中所示的 Ivy-Scala-2.11.8。

    选择当前项目(我的是spark-test),点击确定。

    然后单击“确定”将其关闭。

    再次运行,它现在应该可以工作了。

【讨论】:

我试过这个,但第 3 步中的所有库都被幻影显示为禁用。我无法选择其中任何一个。 这行得通,但我真的不知道发生了什么变化?【参考方案2】:

从 IDEA 13 开始,您应该使用与 Scala 插件捆绑在一起的 SBT 支持。

无需添加第三方SBT插件和运行特殊命令;只需使用“File -> Import project...”菜单项导入项目,它会自动加载SBT项目结构及其依赖项。

【讨论】:

这个解决方案几乎是完美的。 IntelliJ 似乎选择了 Scala 2.10 作为 Scala Facet 中的语言级别,但选择了 2.11 编译器。将语言级别调整为 Scala 2.11 将在此处关闭循环。 内置插件在某些情况下不起作用。我经常求助于 sbt gen-idea。它与 build.sbt 更改后刷新项目有关。 jkschneider 的提示修复了 org.spec2 的构建问题,fwiw 如果您在导入项目后立即遇到编译错误,请尝试关闭并重新打开。为我工作。 这也是一个解决方案,以防您遇到错误Error accessing ~/.m2/repository/org/scala-lang/scala-library/2.11.8/scala-library-2.11.8.jar【参考方案3】:

我在 play 2.3 中使用 ./activator idea 生成的 .idea 文件也遇到了同样的问题。一个快速的解决方法是查看“项目结构->模块”并记下编译器库的名称。对我来说,它是“SBT:scala2.11.1”。查看“项目结构->库”并检查该库的内容。它应该包含 scala-compiler.jar、scala-library.jar、scala-reflect.jar。如果此库不存在,请添加它们(在我的情况下,它们位于 ~/.sbt/boot/scala-2.11.1/lib 中)。

【讨论】:

嗨罗素,我也有同样的问题。那么导致这种情况的错误是什么?激活器有问题? 运行 ./activator idea 会导致问题在此修复后重新出现,所以我认为这是激活器的 .idea 文件生成的错误。我自己没有向 typesafe 团队提出这个问题。也许有人应该这样做......【参考方案4】:

对于 IDEA 15 和从 Activator 1.3.5 导出的项目,目前只有 Russell 的解决方案有帮助。 我已经修复了 scala 编译器库,将位于 ~/.sbt/boot/scala-2.11.1/lib 中的 3 个库添加到库的编译器类路径和类中。索引项目后,我将此库移至 IDEA 的全局库并保存在那里。

【讨论】:

【参考方案5】:

我遇到了同样的问题。

如果您正在使用外部sbtsbt compile 构建项目,那么它将在库中创建或添加依赖项(所有外部依赖项也是如此),并且 scala sdk 将根据您的 scala 版本添加为SBT:scala*。 因此您可以删除以 SBT 为前缀的SDK,并通过 Intellij 添加适当的 SDK。

File->Project Structure->Libraries

移除 SBT SDK 并手动添加。

【讨论】:

【参考方案6】:

对于使用 IDEA 12 的我,当我取消选中 Settings.Compiler 中的“使用外部构建”框时,我解决了这个问题。

【讨论】:

【参考方案7】:

现在是 2021 年,在 Mac 中使用 IntelliJ 运行 scala:

核心逻辑 Mac: brew install scala IntelliJ:打开*.scala文件,然后根据提示自动配置java JDKScala SDK 详细步骤:请参考another post's answer

【讨论】:

【参考方案8】:

我是一个绝对的 Scala 初学者。我想站起来跑步。我需要创建一个 Scala 项目,而不是一个带有 Scala 库的 Java 项目:

【讨论】:

以上是关于错误:scala:Scala 编译器库中没有“scala-library*.jar”的主要内容,如果未能解决你的问题,请参考以下文章

Scala概述

在 Eclipse IDE 中使用 Scala 代码。内部编译器错误

Scala:编译错误:方法重载

通过spark加载现有的s3文件在scala中给出403,但在python中没有

SparkSpark开发报错总结

scalajs_初体验