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

时间:2014-06-03 16:05:12

标签: scala intellij-idea playframework-2.0 intellij-13

环境:播放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

我做错了吗?解决办法:

enter image description here

7 个答案:

答案 0 :(得分:31)

  1. 打开文件 - >项目结构 - >库,删除其中的任何scala sdk,例如scala-sdk-2.11.8如下图所示。 enter image description here

  2. 点击+,然后点击Scala SDK。 enter image description here

  3. 从列表中选择正确的Scala SDK,对我来说,它是图片中显示的Ivy-Scala-2.11.8。enter image description here

  4. 选择当前项目(我的是spark-test),然后单击“确定”。 enter image description here

  5. 然后单击“确定”关闭它。 enter image description here

  6. 再次运行,现在应该可以正常工作。

答案 1 :(得分:20)

自IDEA 13以来,您应该使用与Scala插件捆绑在一起的SBT支持。

有了它,就不需要添加第三方SBT插件并运行特殊命令;只需使用"文件 - >导入项目导入项目......"菜单项,它将自动加载SBT项目结构及其依赖项。

答案 2 :(得分:6)

我对./activator创建的.idea文件与play 2.3有同样的问题。快速解决方法是查看“项目结构 - >模块”并记下编译器库的名称。对我来说,这是“SBT:scala2.11.1”。看看“Project Structure-> Libraries”并查看该库的内容。它应该包含scala-compiler.jar,scala-library.jar,scala-reflect.jar。如果这个库不存在,添加它们(在我的情况下,它们位于〜/ .sbt / boot / scala-2.11.1 / lib中)。

答案 3 :(得分:1)

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

答案 4 :(得分:1)

我遇到了同样的问题。

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

File->Project Structure->Libraries

删除SBT SDK并手动添加。

答案 5 :(得分:0)

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

答案 6 :(得分:0)

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

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