java - eclipse 项目/包/类路径 - 我该如何修复?
问题描述
我在 Eclipse 中制作了一个项目的副本,这样我就可以做出一些巨大的改变而不会影响工作代码。现在,当我尝试在旧项目中执行相同的代码时,在新项目中,我得到一个 NoCLassDefFoundError 因为它指向具有新类名的旧项目(只是添加了一个 a):java.lang .NoClassDefFoundError: cosc2425lab5fa21a/ArrayExamples 在 cosc2425lab5fa21/cosc2425lab5fa21testa.Lab5Test.main(Lab5Test.java:25)
我无法发现如何修复路径,因此现在应该是: cosc2425lab5fa21 a /cosc2425lab5fa21testa.Lab5Test.main
请注意,我刚刚在项目名称、包名称和类名称中添加了一个 a。
解决方案
如果您将项目保存在计算机中,它将更改许多名称,因为所有以前的项目名称都已经存在,甚至编译的 .class 文件已经在系统中。
并且 .class 文件名将被更改,这肯定会给出 NoClassDef FoundError,因为在编译过程中会编译类并保存 .class 文件,但在运行时具有相同的类名,它只有您以前项目的文件和已编译的 .class 文件。这个复制项目的类文件有一些不同的名称,因此它们甚至不会被注意到,因为名称与类名不同。
更改项目中的所有类名仍然可以使其运行。
推荐阅读
- java - 从属性指定数组列表类型
- vue.js - 如何在没有库的情况下在 vue 中进行拖放?
- metpy - metpy 抱怨文件是无效数据
- c++ - 在 OSX10.15 上将自己的 dylib 与 libtool 链接时未定义的符号“__Unwind_Resume”
- php - 如何制作侧类系统
- javascript - 如何将自定义指令添加到 Angular Material Dialog 组件
- sql - 如何对特定的 SQL 列进行分组并检索这些列的计数最高的行?
- sql - Postgres JSON转换函数的正确使用
- javascript - sap.m.table有json绑定表有输入字段,如何捕获输入条目
- javascript - 未从 d3-array 导出的组