49

我最近放弃了尝试在 Eclipse 中使用 Scala(完成之类的基本内容不起作用)。所以现在我正在尝试 IntelliJ。我不会走得很远。

我已经能够编辑程序(在语法突出显示和完成中......耶!)。但我什至无法运行最简单的“Hello World”。这是最初的错误:

Scala 签名 Predef 版本错误
预计 5.0
找到:4.1 in .... scala-library.jar

但那是昨天的 IDEA 9.0.1。见下文...

更新

今天我卸载了 IntelliJ 9.0.1,安装了 9.0.2 Early Availability,带有 Scala 插件的 4/14 稳定版。

然后我通过向导从头开始设置一个项目:

  • 从头开始的新项目
  • JDK 是 1.6.u20
  • 接受默认(项目)而不是全局/模块
  • 接受将 Scala 2.8.0beta1 下载到项目的 lib 文件夹中

创建了一个新类:

对象你好{
  def main(args: Array[String]) {
    println("你好:" + args);
  }
}

为了我的努力,我现在有一个全新的错误:)

这里是:

Scalac 内部错误:类 java.lang.ClassNotFoundException [java.net.URLClassLoader$1.run(URLClassLoader.java:202)、java.security.AccessController.doPrivileged(Native Method)、java.net.URLClassLoader.findClass(URLClassLoader.java :190), java.lang.ClassLoader.loadClass(ClassLoader.java:307), sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301), java.lang.ClassLoader.loadClass(ClassLoader.java:248) , java.lang.Class.forName0(Native Method), java.lang.Class.forName(Class.java:169), org.jetbrains.plugins.scala.compiler.rt.ScalacRunner.main(ScalacRunner.java:72) ]

最后更新

我卸载了 9.0.2 EA 并重新安装了 9.0.1,但这次使用的是 Scala 的 2.7.3 版本而不是默认的 2.7.6,因为 IntelliJ 网站的屏幕截图中显示的是 2.7.3(我猜屏幕截图证明他们确实测试了这个版本!)。现在一切正常!!!

4

9 回答 9

20

尝试在 Intellij Idea 9.0.2 中运行 Scala 项目时遇到了相同的 scalac 错误,我偶然找到了解决方案:)。这些是我在创建和运行项目时采取的步骤。

我在 Intellij Idea 9.0.2 final(今天发布)中创建了一个 Scala 项目。我已经安装了 Scala 插件,重新启动了 IDE 并创建了一个新的 Scala 项目(名称为“TestScala”),其中 scala-2.8.0.Beta1 作为项目库。创建项目并下载 scala 库后,我创建了一个包含以下内容的 Test.scala 文件:

object Test  {
 def main(args:Array[String]){
   println("hello")
 }
}

之后,我创建了一个启动配置(“编辑配置”),选择“应用程序”模板。我设置为主类 Test 并在“使用模块的类路径和 JDK”组合框中选择项目名称(“TestScala”)。当我运行配置时,我得到与您报告的相同的错误 ("Scalac internal error: class java.lang.ClassNotFoundException") 。

现在是怪异的部分:)。我右键单击项目,选择“模块设置”,查看所有设置但我没有更改任何内容。单击“应用”和“确定”,尝试再次运行配置,它可以工作:)。

我使用 Intellij Idea 9.0.2 最终版本(内部版本 95-66);Ubuntu 9.10 和 JDK 1.6.0_18。还要提一下,我在 Intellij 中配置了一个 JDK,否则需要额外的步骤来配置它。

更新:

检查模块的设置时,需要点击Module-> ScalaFacets->Scala(展开并点击 Scala(ProjectName))。这两个设置都与 scala 编译器和 scala 库位置有关。我猜想这些值在创建项目时没有正确设置,但是一旦用户触摸它们并保存设置就会保存。

于 2010-04-22T07:00:17.487 回答
10

要回答您的问题,很难获得适用于 Scala 的 IDE,原因有两个:(a) Scala 才刚刚开始接触广泛的受众;(b) 由于 (a),没有商业案例可以花时间在一个 Scala IDE。

此外,如果您已经足够大到可以回想起来并且足够年轻还可以记住,那么您就会知道,在 Java 的前五年或更长时间里,我们一直使用像 JBuilder 这样的不错的工具,它们只不过是编译您的当你这么说时的代码 - 没有错误突出显示,没有自动导入,甚至不存在重构这个词。如果你想开拓,你需要准备好自己开辟一些道路,或者至少是灌木丛。

我知道这对你没有帮助,但我已经在 Linux、Mac 和 Windows 上成功地使用了 IDEA for Scala。我通常将 Scala SDK 安装在本地某处并将 IDEA 指向该位置,而不是使用“下载”选项。

目前,我主要在 Mac OS X 上使用带有 Scala 2.8.0.Beta1-RC5的 IDEA 9 的 EAP 版本,它运行良好(除了 fsc 似乎不适用于混合源)。

你可以在IDEA Scala Plugin Discussion Forum试试运气,尽管我在那里的帖子没有得到很多回应。

于 2010-04-20T10:54:18.380 回答
6

安装插件是先决条件之一。

接下来你应该定义一个库(全局或特定于项目的;我使用全局)来保存 Scala 库编译器 JAR 文件(至少是scala-compiler.jarand scala-library.jar)。添加源 JAR 和文档 JAR 或 URL 也是一个好主意。然后让这个库成为项目中任何包含 Scala 代码的模块的依赖项。

最后,在这些模块中找到 Scala 方面并取消选择那里的两个复选框。

于 2010-04-20T14:46:48.773 回答
2

我刚刚进行了全新安装,我自己也遇到了同样的问题。原来,因为我在根包中创建了文件,所以IDEA在顶部添加了一个包语句,并命名了一个包。我假设这随后被编译为“包对象 Main”——2.8 中的有效语法?无论如何,我删除了说包的那一行,一切都很好。

于 2010-06-07T02:53:34.023 回答
1

我昨天在尝试设置时遇到了同样的问题。解决方案非常简单,您只需在项目设置中的某处设置 scala。

于 2010-04-20T11:34:51.260 回答
0

您正在混合使用两个不同的 Scala 版本编译的代码。

于 2010-04-19T14:57:25.057 回答
0

我使用 Netbeans 编写 scala 程序。到目前为止,它适用于我的代码。您可以在此处尝试该插件:http ://wiki.netbeans.org/Scala68v1 。

于 2010-05-17T09:47:39.413 回答
0

我收到此错误,还必须右键单击项目和“打开模块设置”。然而,这不仅仅是点击应用。我必须确保我的内容根对于每个项目都是正确的。出于某种原因,有一些不正确的源和测试文件夹。

我的项目使用 maven 作为主要构建工具,将项目导入 Intellij 可能是造成这些错误设置的原因。

于 2011-01-26T18:16:32.043 回答
0

我有类似的问题,按照这篇博客文章的说明为我解决了这个问题

于 2011-08-26T11:55:09.800 回答