重命名包后出现NoClassDefFoundError错误

8

我正在使用Netbeans编写一个简单的应用程序; 在创建新的Java项目时,我使用Netbeans的重命名功能(即使用Refactor > Rename...)将自动创建的包从oldpackage重命名为newpackage

当我运行程序时,我收到了这个异常:

    java.lang.NoClassDefFoundError: oldpackage/Main
Caused by: java.lang.ClassNotFoundException: oldpackage.Main
        at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
Could not find the main class: oldpackage.Main.  Program will exit.
Exception in thread "main" Java Result: 1

我已经搜索了一些资料,但找不到明显的解决方法 - 有人能帮忙吗?


1
尝试清理并重新构建项目。如果问题仍然存在,请在文件中搜索旧包以进行解决。 - Vasco Lameiras
1
清理和构建是我做的第一件事。 - NRKirby
2
如果您只是单击按钮来运行程序,请尝试查看运行配置或设置,确保您的项目和主类是正确/已更新的。 - Ryan
2
谢谢Ryan,运行配置设置为旧包。 - NRKirby
4个回答

0
我正在使用Android Studio开发一个libGDX项目,我想将一个包文件夹从小写改为驼峰式命名,并进行了重构。但是在删除位于项目中的build文件夹之前,我无法启动项目并遇到了一些问题:

core/build


0

在gradle文件中更改包名applicationId。清理并重新打开您的项目。


0

有些事情需要检查。它们是:

  1. 从menifest.xml和build.gradle两个文件中检查您的应用程序的包名称。
  2. 检查清单活动名称和完整路径。如果活动路径不正确,请将其更正。
  3. 如果问题没有解决,则执行 文件-->无效缓存/重启。希望问题会得到解决。
  4. 如果问题没有解决,则删除构建文件夹并重新构建项目。现在您的问题将被解决。

谢谢 :)


0
如果在IntelliJ IDEA IDE上工作,则导航到运行 ->编辑配置。在构建和运行区域中,用现有的包名称替换新的包名称,并在下面的代码覆盖区域中取消选择旧的包名称并插入您的新包名称,然后应用确定。完成此操作后,您将能够成功运行项目。

附带参考图像

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接