Java 相同的包,不同的目录
在我的Java 相同的包,不同的目录,java,package,classpath,runtime-error,noclassdeffounderror,Java,Package,Classpath,Runtime Error,Noclassdeffounderror,在我的proj3目录中,我有一个文件夹gui和一个文件夹foo。 gui中的文件属于包foo。 使用gmake,一切都会编译文件,但当我尝试在调用gui.Display的foo中执行java foo.Main(Main方法)时,我得到: Exception in thread "main" java.lang.NoClassDefFoundError: foo/Display at foo.Main.main(Main.java:45) Caused by: java.lang.ClassNo
proj3
目录中,我有一个文件夹gui
和一个文件夹foo
。
gui
中的文件属于包foo
。
使用gmake,一切都会编译文件,但当我尝试在调用gui.Display
的foo
中执行java foo.Main
(Main方法)时,我得到:
Exception in thread "main" java.lang.NoClassDefFoundError: foo/Display
at foo.Main.main(Main.java:45)
Caused by: java.lang.ClassNotFoundException: foo.Display
我是从proj3目录编译的。我将/gui/
添加到我的类路径中,该路径现在有:./gui/
和其他实用程序
如果gui中的文件属于包foo,将不胜感激。。文件也应移动到文件夹foo。移动gui。显示到包foo您是否导入了所需的类?java foo.Main
以便查找Main
,您正在从foo
目录执行java
命令吗?@user1870638Display
属于同一个包,所以我想我不需要导入。不幸的是,有一个也不能解决问题@AndrewThompsonMain
是package foo
中的一个类,它具有Main
方法。要运行我的程序,在proj3目录的终端中,我输入:javafoo.Main
(我不相信foo.Main
会在foo
目录中工作。)它们确实存在于gui
文件夹中。我的文件夹gui
与文件夹foo
处于同一级别。我试着在foo
中使用gui
,但效果没有任何改善。“但效果没有任何改善。”在这种情况下,您得到了什么确切的错误?如果源文件在同一个包中,那么最容易将它们存储在同一个目录中。我确信如果我在foo
文件夹中有确切的文件,那么它当然会工作。当我的意思是“没有工作”更好时,那就是将整个文件夹gui
放在foo
中。实际上,我得到了同样的错误。理想情况下,我希望在gui
文件和foo
文件(如文件夹)之间有某种分离。但是gui
文件仍然需要属于包foo。
gui.Display确实属于包foo。如果我将文件gui.Display移动到foo文件夹中,它肯定会工作,但我需要某种分离。