【发布时间】:2013-09-30 21:02:45
【问题描述】:
我是 Java 新手,因此很难理解“包”范式。
我正在使用其他人的包 Framework 来构建我的程序。
当我这样做时,一切正常:
import Framework.Item1;
import Framework.Item2;
import Framework.Item3;
当我这样做时,没有任何效果:
import Framework.*;
当我尝试在控制台使用 javac.exe 编译时失败,它在编译时停止。错误如下:
error: cannot access Item1
bad class file: ...\Framework\Item1.class
class file contains wrong clsas: Framework.Item1
Please remove or make sure it appears in the correct subdirectory of the classpath
但是我已经检查了,双重检查,三重检查和四重检查文件是否在正确的位置;此外,如果这是问题,那么在按特定类名导入时它不会失败吗?在我决定需要在这个问题上寻求帮助之前,我已经被难住了一段时间。 :(
编辑:在尝试了许多简单和复杂的解决方案之后,最终的答案是保存我所有的工作,清理项目并重新编译。然后一切都像魔术一样工作。
如果有人能解释什么会导致这样的情况,以便我以后可以防止它发生,我将非常感激。
【问题讨论】:
-
试试
javac -cp . *.java -
有时会发生神秘的事情,通常对项目进行清理可以创造奇迹
-
谢谢@ghoulfolk - 在尝试了各种困难的解决方案之后,它归结为这样简单的事情。我仍然不知道为什么,但只是删除了很多文件并从头开始重新编译终于让它工作了。感谢您的建议!