我在尝试运行Netbeans(7.2(时遇到了一个反复出现的错误,上次我遇到它时,我发现在某个地方可以将所有文件移动到一个新项目中。这可能会奏效,但我的项目规模太大,这很麻烦。这是痕迹。。。
Exception in thread "main" java.lang.NoClassDefFoundError: X.X.X.X
Caused by: java.lang.ClassNotFoundException: X.X.X.X
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
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: X.X.X.X Program will exit.
它肯定在那里,10分钟前还很好,我还没有碰它。
我确信这与netbeans的自动编译(也许还有代码完成功能(有关。有没有一种方法可以重置所有的内部数据,而不需要将所有内容转移到新项目中。或者任何其他建议。
有一种简单易行的方法:让编译器再次编译该程序。意味着只需更改一些代码,如Putsomecode或在两者之间打印Something,然后再次保存。
以及清洁和建设项目。
右键单击"项目"-->"清理并生成"。
然后再次运行该程序。
我们开始享受吧。这将得到解决。
简而言之,您需要做一些更改,以便编译器需要再次编译该程序。从而解决错误。
这并不是编码错误,我认为问题出在IDE上。
在描述的情况下,它通常可以帮助我删除Netbeans的整个缓存
所以关闭Netbeans
找到带有netbeans缓存的目录并删除其内容
它通常位于[USER_HOME].netbeans7.xvar
中-删除var
目录中的所有内容。
在windows 10 NetBeans 8.1上,关闭NetBeans,删除Cache目录并重新启动为我解决了这个问题:
缓存位于:
C:Users%UserName%AppDataLocalNetBeansCache
注意:我也可以关闭项目属性,构建,编译,"编译时保存",程序将继续正常运行。
如果禁用"保存时编译",有时也会有所帮助。
- 转到(项目(属性->编译->保存时编译
(使用Netbeans 8.1进行了测试,当@Ondrej Bozek建议清除缓存时,并没有解决问题(。
运行程序后,您可以再次启用"保存时编译",而不会出现任何问题。
这是随机发生在我身上的,我通过重命名引发错误的类来修复它,然后重新命名。
如果你有任何疯狂的"找不到类"错误,你知道这些错误是假的,因为你没有对类名或位置做任何事情,项目在十分钟前运行良好,并且错误发生在你对其中一个类文件做了一些无害的更改之后,那么,是的,关闭NetBeans,删除Cache文件夹。这样做是完全安全的。
该缓存(Netbeans 8.2,Windows 10(位于下面的路径中。注意:只要UserName
是一个有效的环境变量名,就可以准确地键入下面的内容。
C:Users%UserName%AppDataLocalNetBeansCache
p.S。如果UserName
定义不正确,则会出现错误。然后输入Run cmd
,键入UserName=
,然后键入C:Users
文件夹名。假设它是Dov
。这样做:
C: …>set UserName=DOV
{这将我的用户名设置为"DOV"}
C: …>set UserName
(这只是问UserName
是什么(
USERNAME=DOV
{上面写着,"嘿,你的UserName
是"DOV"}
p.p.S。如果您不确定您的UserName
,则发出以下命令:
C: …>set UserProfile
USERPROFILE=C:UsersDov
您的Username
是列出的最后一个文件夹名称,即"Dov"。
p.p.p.S.你可能已经注意到cAsE并不重要。