Tho*_*ood 24 eclipse scala eclipse-plugin scala-ide
我已经从/ update-current安装了Eclipse 3.5.2和今天的Scala插件(这是Scala 2.8 final.)我可以编译并运行由单个单例对象组成的Scala项目,该对象实现main().
但是,如果一个项目包含更多的类,我收到"找不到主类"错误.
我试图寻找解决方案,我发现:
Eclipse正在寻找Main $类,而不是
Debug Configurations下的Main类*,我的主类被正确识别为mypackage.Main
*我的插件是最新的,推荐用于我的Eclipse
*清理版本,重启等等.没有帮助.
同一个项目将使用scalac进行编译.
感谢您提供有关如何解决此问题的任何想法.
编辑:MatthieuF建议我应该发布代码.
此代码段会产生错误.它不是最惯用的代码,但我用它来编写测试环境的方法.我把它作为单个文件和单独的文件尝试.它与scalac合作.
import swing._
class HelloFrame extends Frame {
title = "First program"
contents = new Label("Hello, world!")
}
object Hello {
val frame = new HelloFrame
def main(args : Array[String]) : Unit = {
frame.visible = true
}
}
Run Code Online (Sandbox Code Playgroud)
但是,如果我在Hello中嵌入HelloFrame的定义,它就可以了.这个片段完美运行:
import swing._
object Hello {
class HelloFrame extends Frame {
title = "First program"
contents = new Label("Hello, world!")
}
val frame = new HelloFrame
def main(args : Array[String]) : Unit = {
frame.visible = true
}
}
Run Code Online (Sandbox Code Playgroud)
nin*_*cko 21
对我来说,问题是存在构建错误(请参阅"问题"选项卡),这会阻止编译; 哎呀!您看到错误的原因是尽管编译步骤失败,运行宏仍会继续,并尝试运行它期望存在的类文件; 它们不存在,因为存在阻止编译的构建错误,因此它说它找不到Main(未编译).
当构建成功完成时问题消失,即错误得到修复.
我想,从理论上讲,可能有更复杂的原因,你的构建没有成功完成,没有在Problems中列出.
一种可能性是您尝试使用ctrl-F11启动,但是来自不同的类.
Scala Eclipse插件不遵循Java启动的默认值.在Preferences-> Run/Debug-> Launching中,有一些选项Launch Operation-> Always Launch启动先前选择的应用程序等.这在Scala eclipse插件中目前不起作用.要启动指定的main,您需要从该类的编辑器启动它.
编辑:现在(大部分)修复了这个问题.
| 归档时间: |
|
| 查看次数: |
37552 次 |
| 最近记录: |