我最近放弃了尝试在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(本机方法),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,但这次使用的是2.7.3版本的Scala而不是默认的2.7.6,因为2.7.3是IntelliJ网站屏幕截图中显示的那个(我猜屏幕截图证明他们实际测试了这个版本!).现在一切正常!!!
我尝试在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内部错误:类java.lang.ClassNotFoundException").
现在来了怪异的部分:).我右键单击该项目,选择"模块设置",查看所有设置但我不做任何改动.单击"应用"和"确定",尝试再次运行配置,它工作 :).
我使用Intellij Idea 9.0.2最终版本(build 95-66); Ubuntu 9.10和JDK 1.6.0_18.我还必须提到我在Intellij中配置了JDK,否则有一个额外的步骤来配置它.
更新:
当检查模块的设置,需要点击模块- >斯卡拉和Facets->斯卡拉(展开它,然后单击斯卡拉(项目名)) .这两个设置都与scala编译器和scala库位置有关.我猜这些值在创建项目时没有正确设置,但是一旦用户触摸它们并保存设置就会保存.
为了回答你的问题,很难为Scala获得一个可用的IDE,原因有两个:(a)Scala刚刚开始接触到广泛的受众;(b)由于(a),没有商业案例可以花时间一个Scala IDE.
此外,如果你的年龄足以让你回想起来并且年轻到足以让人记住,那么你会知道,在Java的前五年或更长时间里,我们一直坚持使用像JBuilder这样的好工具,而不仅仅是编译你的工具.代码,当你这么说 - 没有错误突出显示,没有自动导入,并且甚至不存在重构一词.如果你想成为先锋,你需要准备好自己削减一些道路,或者至少是灌木丛.
我知道这对你没用,但我已经在Linux,Mac和Windows上成功地使用了IDEA for Scala.我通常在本地某处安装Scala SDK并指向IDEA,而不是使用"下载"选项.
目前,我主要在Mac OS X上使用EAP版本的IDEA 9和Scala 2.8.0.Beta1-RC5并且它运行良好(除了fsc似乎不适用于混合源).
您可以在IDEA Scala插件论坛上试试运气,虽然我没有对我自己的帖子做出很多回复.
安装插件是先决条件之一.
接下来你应该做的是定义一个库(全局或项目特定的;我使用全局),它包含Scala库和编译器JAR文件(至少,那是scala-compiler.jar
和scala-library.jar
).添加源JAR和文档JAR或URL也是一个好主意.然后使该库成为项目中包含Scala代码的任何模块的依赖项.
最后,在这些模块中找到Scala方面,并在那里取消选中两个复选框.