noClassDefFoundError使用Eclipse的Scala插件

noClassDefFoundError使用Eclipse的Scala插件,eclipse,scala,build,Eclipse,Scala,Build,我使用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

我使用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")
 }
}

如果您在尝试作为Scala应用程序运行时看到这一点,那么最可能的解释是您的项目没有编译,也没有生成类文件。请检查是否是这种情况:在项目的输出文件夹中查找hello/HelloWorld.class

如果您的项目没有编译,这可能是因为您遗漏了一个错误(如果此错误没有在Problems视图中报告,则可能是一个错误,在这种情况下,请在Trac上打开一个记录单),也可能是因为您关闭了自动生成而没有手动生成项目。

运行“clean”时如果不卸载Eclipse,我接下来尝试保存我的工作,退出Eclipse,然后重新启动。这通常会让事情重新开始,但并不总是如此。有几次我不得不用一个更新的版本更新Scala插件(我使用的是最新的夜间版本),以使事情恢复正常。我怀疑这是否有效,因为新插件恰好修复了这个bug,但我更希望加载新插件可以提供整个Eclipse Scala
系统“完全重置”使其未关闭。

我也有同样的问题。项目未编译,但没有突出显示错误,请确认代码正常。运行配置似乎有问题

解决方案1:删除对象的现有运行配置并创建新的运行配置


解决方案2:创建一个新对象并将所有代码剪切/粘贴到该文件中

我已将我唯一的类/对象/应用程序移动到一个包中,但没有添加
声明

sbt
编译并运行良好;日蚀不会发生

在文件顶部添加
声明修复了它


Scala 2.8.3插件;没有编译错误

我在一个结合了.java和.scala文件的项目中遇到了这个问题。 我的解决方案是:

  • 删除所有.java文件
  • 根据需要编辑scala代码,以便在编译时不使用它们
  • 将.java文件添加回
  • 重新编辑scala代码
  • 这里给出的其他解决方案对我不起作用。我尝试过:清理项目,重新启动Eclipse,关闭和打开项目,创建一个新的.scala文件。没有快乐

    我在UbuntuLinux11.10上使用Eclipse3.7(最新版本)、ScalaIDE2.0.0和Scala2.9

    我的症状是:

    • 我的项目正在运行,但后来它无缘无故地停止了编译。IDE没有显示.scala文件的任何编译错误,但是输出目录中没有.class文件&如果我尝试运行任何东西,我会得到一个NoClassDefError
    • 如果我在.scala文件中故意创建了一个错误,那么它确实会被认为是编译错误
    • 由于缺少scala类,.java文件正在注册错误

    我想在.java/.scala的IDE插件中可能有一个引导错误。我用这个设置做过混合项目,没有问题,所以它只在某些情况下触发。我不知道触发器是什么,但一旦被触发,就没有好的解决方案。

    我也遇到了这个错误,但在执行了这里的建议(清理、删除运行配置等)后,我意识到我错误地设置了工作区,这就是找不到类的原因

    当您尝试编译java项目时出现相同的错误时,就表明这是一个问题。

    我在创建名为“common”的新包对象时遇到了这个错误(编译在sbt中工作,但在eclipse中失败)。在eclipse中删除包对象导致编译错误消失。里面什么也没有


    我正在使用sbt eclipse构建eclipse项目。我正在使用scala eclipse 3.0.0-vfinal-20130326-1146-Typesafe。

    在$PROJECT/bin/hello中是否有HelloWorld.class文件?(您可以使用“导航器”视图进行检查)。输出文件夹中没有文件。不幸的是,我昨天重新安装了我的环境,以使一切正常工作,因此我无法进一步排除故障。对我来说,运行配置似乎在某种程度上受到损坏或设置不正确,但我找到了一个“解决方案”-见下文,我也遇到了同样的问题:HelloWorld$.class位于输出文件夹中,但没有HelloWorld.class。清洁解决了这个问题。