我已经编写了一个Java类,它实现了在另一个目录中指定的接口。我编译应用程序是这样的:在编译时在类路径上找到类,但在运行时找不到类
javac ArrayQueue.java -cp QueueArray
类ArrayQueue
实现接口Queue
目录QueueArray
。如果没有指定的类路径,编译器会按预期抛出错误。
然而,运行程序后,该程序时,它不能再找到类:
java ArrayQueue -cp QueueArray
Exception in thread "main" java.lang.NoClassDefFoundError: Queue
什么可能会导致这?
编辑:程序工作正常,如果我的.class
文件复制到同一目录ArrayQueue.class
。
目录结构和包声明? – Thihara 2013-03-11 10:05:12
您是否检查过.class文件是否存在?您将在运行时需要.class文件。 – 2013-03-11 10:06:34
@Thihara所有的类都在默认包中,其中main的文件是'ArrayQueue.java',而使用的类是'QueueArray/Queue.java'相对于主文件。 – Overv 2013-03-11 10:06:55