我使用Scala插件在Eclipse中成功实现并运行了几个Scala教程。然后突然我尝试编译并运行一个例子,出现了这个错误:
Exception in thread "main" java.lang.NoClassDefFoundError: hello/HelloWorld
Caused by: java.lang.ClassNotFoundException: hello.HelloWorld
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:315)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:330)
at java.lang.ClassLoader.loadClass(ClassLoader.java:250)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:398)
在此之后,我再也无法在Eclipse中运行任何Scala程序。我尝试清理和重建我的项目,关闭并重新打开我的项目,关闭并重新打开Eclipse。
Eclipse版本号3.5.2和Scala插件2.8.0
以下是原始代码:
package hello
object HelloWorld {
def main(args: Array[String]){
println("hello world")
}
}
答案 0 :(得分:10)
如果您在尝试作为Scala应用程序运行时看到这一点,那么最可能的解释是您的项目没有编译并且没有生成类文件。请检查是否是这种情况:在项目的输出文件夹中查找hello / HelloWorld.class。
如果你的项目没有编译,可能是因为你错过了一个错误(如果在Problems视图中没有报告这个错误可能是一个错误,在这种情况下请打开一张票在Trac上)或因为你已经关闭了自动构建而没有完成项目的手动构建。
答案 1 :(得分:3)
我遇到了同样的问题。 Project没有编译,但没有突出显示错误,AFAIK代码没问题。这似乎是运行配置的问题。
解决方案1 :删除对象的现有运行配置并创建一个新配置
解决方案2 :创建新对象并将所有代码剪切/粘贴到该文件中
答案 2 :(得分:2)
当运行“clean”并没有解开Eclipse时,我接下来尝试保存我的工作,退出Eclipse并重新启动。这通常会让事情再次发生,但并非总是如此。有几次我不得不用更新版本更新Scala插件(我每晚使用最新版本),让事情再次发挥作用。我怀疑这是否有效,因为新插件碰巧修复了这个bug,而是期望加载新插件会给出整个Eclipse-Scala 系统“完全重置”,使其不受限制。
答案 3 :(得分:1)
我在一个结合了.java和amp;的项目中遇到了这个问题。 .scala文件。 我的解决方案是:
此处给出的其他解决方案对我不起作用。我尝试过:清理项目,重新启动Eclipse,关闭和开放项目,创建一个新的.scala文件。没有快乐。
我在Ubuntu Linux 11.10上使用Eclipse 3.7(最新稳定版),Scala IDE 2.0.0和Scala 2.9。
我的症状是:
我想在.java / .scala mix的IDE插件中可能存在一个引导错误的错误。我已经完成了这个设置的混合项目没有问题,所以它只在某些情况下触发。我不知道触发器是什么,但一旦触发,就没有好的解决方案。
答案 4 :(得分:0)
我已经将我的唯一的类/对象/应用程序移动到了一个包,但没有添加package
声明。
sbt
编译并运行良好;日食不会
在文件顶部添加package
声明修复它。
Scala 2.8.3插件;没有编译错误
答案 5 :(得分:0)
我也遇到了这个错误,但在完成这里的建议(清理,删除运行配置等)之后,我意识到我错误地设置了工作区,这就是找不到类的原因。
当您尝试编译java项目时出现相同的错误时,表明这是一个问题。
答案 6 :(得分:0)
当我创建一个名为“common”的新包对象时,我遇到了这个错误(编译在sbt中工作但在eclipse中失败)。在eclipse中删除包对象导致编译错误消失。其中没有任何东西。
我正在使用sbt-eclipse来构建eclipse项目。我正在使用scala eclipse 3.0.0-vfinal-20130326-1146-Typesafe。