我刚刚使用Scala,并按http://www.scala-lang.org/node/94所述安装了Eclipse插件,但在进入“Hello World”测试示例并按照描述设置运行配置后,我收到以下错误
Exception in thread "main" java.lang.NoSuchMethodError: main
供参考,代码为
package hello
object HelloWorld extends Application {
println("Hello World!")
}
我使用明显的解决方案(添加一个main方法,使用main方法添加一个singleton对象),但我显然做错了。
任何人都可以让他们的测试示例工作,或指出我做错了吗?
答案 0 :(得分:4)
我昨晚遇到了同样的问题。我修复了它a)删除任何现有的scala运行配置,然后通过(我不是在开玩笑)在第一个花括号之前添加一个换行符。
我做的另一件事就是进入现有的运行配置并在“arguments”选项卡中添加一些垃圾。我无论如何都忽略了这些论点,所以它并没有影响程序的输出,但它让插件再次找到了主要的
答案 1 :(得分:4)
我也用下面的代码点击了这个错误:
package hello
class HelloWorld extends Application {
Console.println("Hello World!")
}
错误是使用class
而不是object
,当我切换到object
时,它在Eclipse中运行良好。
答案 2 :(得分:2)
我通过清理项目来解决问题,然后使用main方法转到类并使用strg + s构建它(自动构建)。像魅力一样。
答案 3 :(得分:2)
这有点难看,但你可以放置
package hello
object HelloWorld {
def main(args:Array[String]) {
println("Hello World!")
}
}
在文件HelloWordSrc.scala中(或者你喜欢的任何内容而不是尾随的“Src”),也许清理项目一次,然后Eclipse应该运行它。 “扩展应用程序”在Eclipse中从未对我有用,但插件在代码中查找主要方法,由于某种原因,该方法不能与文件名称指定的名称相同
欢呼声
答案 4 :(得分:2)
有完全相同的问题。我的解决方案是:
应该是它。
修改强>
关于问题的原因,IMHO Eclipse正在寻找要执行的文件HelloWorld.class。但是,它应该寻找的是HelloWorld $ .class(或者相反)。但这种假设可能是错误的......
答案 5 :(得分:2)
我遇到了同样的问题。以下是我修复它的方法:右键单击您的项目,选择“properties-> Java Build Path”,您可以看到“Default output folder”是“您的项目/ bin ”。将其更改为“您的项目/ 类”,然后清理并重建您的项目。一些抱怨可能仍会出现,但它会通过 - 只需确保在“classes”文件夹下生成已编译的“.class”文件
我怀疑它与底层Java的执行引擎/配置有关。不太确定,因为我不熟悉Java。
答案 6 :(得分:1)
Scala插件有点不稳定。尝试关闭并重新打开项目,这通常会有所帮助。
答案 7 :(得分:1)
不幸的是,你没有做错任何事。 Scala的Eclipse插件已经过了更好的日子,但它已被重写以利用最近的一些功能来实现更好的集成,而且目前的版本是错误的。
现在,我推荐NetBeans。或IDEA,如果你有钱的话。
答案 8 :(得分:1)
Netbeans工作〜好但也有问题。现在我有一个很好的Eclipse 3.4 + Scala Plugin 2.7.5 Final工作得非常好。我建议你干净安装Eclipse 3.4,Scala 2.7.5,清理你的项目等。 您是否使用Scala项目创建者创建了项目?即创建新项目 - > Scala项目? 当然,如果没有别的办法对你有用的话,这一切都是可以的。
答案 9 :(得分:0)
如果您使用最新版本的scala(2.9。*),则应使用
object HelloWorld extends App {
println("Hello World!")
}
应用程序,而非应用程序。申请是2.8或2.7的方式。这是唯一的问题是另一个问题。
答案 10 :(得分:-3)
简单回答: 如果您使用(NetBeans或Eclips)只需重新启动程序 其他 将类移动到它可能有帮助的另一个类