如何在IntelliJ IDEA中使用Scala(或者:为什么难以获得Scala的工作IDE)?
我最近放弃了尝试在Eclipse中使用Scala(像完成这样的基本内容不起作用) . 所以现在我正在尝试使用IntelliJ . 我没有走得太远 .
我已经能够编辑程序了(在语法高亮和完成之内......耶!) . 但我甚至无法运行最简单的“Hello World” . 这是原始错误:
Scala signature Predef has wrong version
Expected 5.0
found: 4.1 in .... scala-library.jar
但那是昨天的IDEA 9.0.1 . 见下文...
UPDATE
今天我卸载了IntelliJ 9.0.1,并安装了9.0.2 Early Availability,以及4/14稳定版的Scala插件 .
然后我从头开始通过向导设置一个项目:
-
从头开始的新项目
-
JDK是1.6.u20
-
接受默认(项目)而不是global / module
-
接受将Scala 2.8.0beta1下载到项目的lib文件夹中
创建了一个新类:
object hello {
def main(args: Array[String]) {
println("hello: " + 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) ]
FINAL UPDATE
我卸载了9.0.2 EA并重新安装了9.0.1,但这次使用的是2.7.3版本的Scala而不是默认的2.7.6,因为2.7.3是IntelliJ网站屏幕截图中显示的那个(我猜屏幕截图证明他们实际测试了这个版本!) . 现在一切正常!!!
回答(9)
为了回答你的问题,很难为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的EAP version of IDEA 9,并且's working well (except that fsc doesn' t似乎适用于混合源) .
你可以在IDEA Scala Plugin Discussion Forum试试你的运气,虽然我没有对我自己的帖子做出很多回应 .
我使用Netbeans编写scala程序 . 到目前为止,它对我的代码非常有效 . 你可以在这里试试插件:http://wiki.netbeans.org/Scala68v1 .
我有类似的问题,以下this博客帖子说明解决了我的问题
2 years ago
我尝试在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文件:
之后,我创建了一个启动配置(“编辑配置”),选择了“应用程序”模板 . 我设置为主类Test并在“使用类路径和模块的JDK”组合框中选择项目名称(“TestScala”) . 当我运行配置时,我得到与您报告的相同的错误(“Scalac内部错误:类java.lang.ClassNotFoundException”) .
现在来了怪异的部分:) . 我右键单击该项目,选择"Module Settings",查看所有设置,但 I don't change anything . 单击"apply"和"ok",再次尝试运行配置和 it works :) .
我使用Intellij Idea 9.0.2最终版本(build 95-66); Ubuntu 9.10和JDK 1.6.0_18 . 我还必须提到我在Intellij中配置了JDK,否则有一个额外的步骤来配置它 .
UPDATE:
检查模块的设置时,需要单击 Module->Scala 和 Facets->Scala (expand it and click on Scala(ProjectName)) . 这两个设置都与scala编译器和scala库位置有关 . 我猜这些值在创建项目时没有正确设置,但是一旦用户触摸它们并保存设置就会保存 .