我在ubuntu12.04上的eclipse3.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.
我只在java中真正使用过eclipse,它为我处理所有的开销,因此我对这个错误或者是什么导致了这个错误知之甚少。我已经查看了我的运行配置/类路径等,但不知道要查找什么,这是没有结果的。
有人能给我指出正确的方向吗?我在google上搜索过,大多数东西都是关于清单文件的,但我在任何地方都找不到。我的工作区文件夹只包含我的源文件。
我可以证实:
类“converter”存在于包“ob3.converter”中。
“converter”类包含 public static void main(String[] args)
方法。
项目属性中java构建路径页面上的“source”选项卡显示“converter/lib”和“converter/src”——这两个文件夹包含我的整个项目源代码。
在run configuration/jre中使用的jre是“java-6-openjdk-amd64”。
运行配置中的类路径选项卡如下所示:
boostrap条目:
jre系统库[java-6-openjdk-amd64]
用户条目:
转换器(默认类路径)
转换器
自从上次成功运行converter.java以来,它的路径一直没有改变。
非常感谢您的帮助!
2条答案
按热度按时间sigwle7e1#
我遇到了同样的错误信息。对我来说,我在linux上,发出java命令的用户没有足够的权限访问类路径上jar的目录。
4dc9hkyq2#
我认为你应该重建你的项目。你可以通过点击项目>清理。。。
有时,eclipse的自动构建在类的重构或移动方面存在问题。