破坏的Eclipse项目 - classNotFoundException - 找不到主类

时间:2012-08-24 23:47:03

标签: java eclipse noclassdeffounderror classnotfoundexception

我有一个项目,我一直在Ubuntu 12.04上的Eclipse 3.7.2中开发。最近,我重新构建了包含在包之间移动类的类层次结构。我没有移动我的主类(“ob3.converter.Converter”),它包含我的public static void main(String[] args)方法。

现在,当我尝试运行它时,我得到:

Exception in thread "main" java.lang.NoClassDefFoundError: ob3/converter/Converter
Caused by: java.lang.ClassNotFoundException: ob3.converter.Converter
    at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
Could not find the main class: ob3.converter.Converter. Program will exit.

我只是用Eclipse工作(在java中),它为我处理所有开销 - 因此我对这个错误或者可能导致错误的理解很少。我查看了我的运行配置/类路径等,但不知道该寻找什么,它没有结果。

有人能指出我正确的方向吗?我用google搜索/搜索SO,大多数事情都是关于清单文件,但我无法在任何地方找到它。我的工作区文件夹只包含我的源文件。

我可以验证:

  • “转换器”类存在于“ob3.converter”包中。
  • “转换器”类包含public static void main(String[] args)方法。
  • Project Properties中Java Build Path页面上的“Source”选项卡显示“converter / lib”和“converter / src” - 这两个文件夹包含我的整个项目源。
  • Run Configuration / JRE中使用的JRE是“java-6-openjdk-amd64”。
  • “运行配置”中的“ClassPath”选项卡如下所示:
    • Boostrap条目:
      • JRE系统库[java-6-openjdk-amd64]
    • 用户条目:
      • 转换器(默认类路径)
        • 转换器
  • 自上次成功运行以来,Converter.java的路径没有改变。

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:2)

我认为你应该重建你的项目。您可以通过单击Projects>来完成此操作。干净......

有时Eclipse的自动构建会出现重构或移动类的问题。

答案 1 :(得分:0)

我遇到了同样的错误消息。对我来说,我在linux上,发出java命令的用户对类路径上的jar目录没有足够的权限。