【问题标题】:IntelliJ Idea, “Not valid Scala home” error on WindowsIntelliJ Idea,Windows 上出现“无效的 Scala 主页”错误
【发布时间】:2013-05-19 18:44:40
【问题描述】:

好的,所以我在我的电脑上安装了 Scala 2.10,它在 eclipse 中运行良好...

我最近安装了 IntelliJ Idea 来看看它是多么好的替代品,但显然它不喜欢我的 scala 安装,它在我的 macbook 上运行良好,但这里它只是说“无效的 Scala 主页”尽管事实上这是正确的目录...

创建项目并编写一些测试代码后,我尝试编译它,在调试控制台中显示:“错误:scala:未在模块 untitled1 中设置编译器库”

那我该怎么办?

Scala 已安装,但 IDE 拒绝识别它的存在

每次我尝试使用Idea时,总有一些事情出错

这是错误的屏幕截图:

有什么帮助吗?

编辑:将目录更改为C:\Program Files (x86)\scala 会产生以下错误:

请注意,Scala 确实可以在 Eclipse 中工作

Edit2:进行其他更改,仍然使 IDE 无法识别编译器

【问题讨论】:

    标签: scala ide intellij-idea


    【解决方案1】:
    1. 路径问题。 IntelliJ Scala 插件通过首先检查 SCALA_HOME 环境变量来查找已安装的发行版。如果未设置,它将从 PATH 环境变量中扫描文件夹。在后一种情况下,它将忽略它找到二进制目录而不是实际 Scala 主目录的事实(因此它不会针对路径末尾添加的 bin 进行调整)。请注意,Windows Scala msi 安装程序不会设置 SCALA_HOME(因为 Scala 不需要它才能正常运行)。因此,您要么设置 SCALA_HOME 环境变量,要么导航到该目录(就像您在第二个屏幕截图中所做的那样)。

    2. 来源问题。 Scala msi 安装程序默认不安装源 jar。再次与 SCALA_HOME 变量一样,它们并不是严格需要的。但是为了避免手动设置编译器 jar 以及在第二个屏幕截图中出现不美观的错误 :-) 只需在设置选项中检查“Sources” 屏幕。

    3. Scaladoc 问题。这不是问题的一部分,而是为了完整性: scala api 文档将由 msi 安装程序安装(如果您没有在设置选项中取消选中“API 文档”)。但是,从 scala 插件的角度来看,它们处于“错误”的路径中:[SCALA_HOME]\doc\api。它希望他们改为:[SCALA_HOME]\doc\scala-devel-docs\api。您可以通过多种方式处理它,但我觉得如果您在 Windows 7 上,最有效的方法是创建一个目录连接。进入提升的命令提示符,将目录更改为 [SCALA_HOME]\doc 并运行 mklink /j scala-devel-docs . 从而重定向scala-devel-docs 到父文档文件夹。显然 msi 卸载不会删除它,所以如果你卸载 scala,你将不得不清理它。

    【讨论】:

    • 这个解决方案对我有用(Windows 8)。我重新做了 msi 安装程序,添加了源代码,并将 IntelliJ 的 Scala 主页指向“C:\Program Files (x86)\scala\”。
    • 在 scala 安装期间添加“源”对我有用.. 谢谢
    • 为我做的是将SCALA_HOME 设置为C:\Program Files (x86)\scala
    【解决方案2】:

    将 Scala 主目录更改为

    C:\Program Files (x86)\scala
    

    因为那是主目录。 bin 目录只是属于 scala 安装的众多目录之一。

    【讨论】:

    • 已对原始帖子进行了编辑以适应您的建议。
    • @Electric 那只是缺少源 jars。这不应该阻止它工作。现在尝试构建,它确实应该可以工作。
    • nope 仍然无法编译错误说“模块 中没有设置编译器库”
    • 您还必须指出红色感叹号下方框中的编译器jar。
    • @ElectricCoffee 不,通常您不必添加它。只要您指出 scala 主目录,它将自动添加。那么你的C:\Program Files (x86)\scala 是什么样的呢?它有正常的scala结构吗?无论如何,如果您明确指出 scala 编译器它应该可以工作。
    【解决方案3】:

    补充上面 Keith Pinson 所说的话...

    我今天遇到了类似的问题,并在阅读此link 后最终解决了问题:

    实际上,Scala Facet 配置和通用 Scala 插件配置对于新手来说并不简单,这是一个很大的可用性问题,我们必须解决这个问题。所以你的问题是可以理解的。

    希望下面的这些说明可以帮助您继续前进,直到有更多知识的人可以确认这是错误还是可用性问题。

    创建新项目后,我打开了“项目结构”对话框(Ctrl+Alt+Shift+S ),移至“库”选项卡,确保创建了一个使用非空名称的库,例如“Scala Library”然后从 Scala lib 目录中手动添加了这些 jar:

    scala-compiler.jar
    scala-library.jar
    scala-reflect.jar
    scala-actors.jar
    

    然后我在项目属性的“模块”选项卡上将此库与我的项目相关联。

    从那以后我没有遇到任何麻烦。

    还有一件事,这可能没什么区别,但我的 Scala 安装在:

    C:\scala
    

    希望对您有所帮助。

    【讨论】:

    • 如果库名是空的怎么办?
    • 如果我记得,我只是在库选项卡上重命名了库。
    • 好的,所以我还必须在 Facets 选项卡下进行引用,并告诉项目我正在使用该库作为我的编译器...但非常感谢!
    【解决方案4】:

    这个问题很容易解决,从这个链接下载 zip 版本

    http://www.scala-lang.org/files/archive/scala-2.10.2.zip

    之后,如果需要,请从此链接下载 API 文档

    http://www.scala-lang.org/files/archive/scala-docs-2.10.2.zip

    先提取“scala-2.10.2.zip”,然后将“scala-docs-2.10.2.zip”的内容提取到一个文件夹中命名为“api”,然后将“api”文件夹复制到类似的目录 这 C:....\scala-2.10.2\doc\scala-devel-docs\api

    仅此而已

    对不起我的英语... :)

    【讨论】:

      【解决方案5】:

      尝试一下:

      • 验证 Scala 路径是否正确 -- 打开 cmd 并输入“scala”,它应该会启动 REPL
      • 在 IntelliJ 中打开项目结构并为 scala-compiler 和 scala-library 设置全局库
      • 创建 IntelliJ 项目时使用 Existent Library 选项

      【讨论】:

      • scala 路径是正确的,项目结构甚至没有给我添加东西的能力,最后一个选项也没有做任何事情
      • 在 New Project 对话框中,如果我单击“Set Scala Home”,则会收到与您相同的错误消息。但是,如果我单击“现有库”,Scala 库就在那里并且它可以工作。我不记得点击那个看起来很诱人的“下载 Scala”按钮了。
      • 相信我,“现有库”部分的那些下拉菜单都是空的,完全是空的
      【解决方案6】:

      我想在这里发帖,因为我遇到了同样的问题,我找到了一个简单的解决方案。

      此问题是由使用 Scala 的 MSI 安装程序版本引起的。 IntelliJ IDEA 与 Scala 的 .zip 发行版配合得更好。

      【讨论】:

        【解决方案7】:

        安装 Windows 版本时,还要安装源代码 - 这样效果会好很多。它仍然有点抱怨。

        【讨论】:

          猜你喜欢
          • 2019-07-16
          • 1970-01-01
          • 2014-10-19
          • 1970-01-01
          • 2018-02-27
          • 2011-09-27
          • 2019-07-19
          • 1970-01-01
          相关资源
          最近更新 更多