Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 相同的包,不同的目录_Java_Package_Classpath_Runtime Error_Noclassdeffounderror - Fatal编程技术网

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
命令吗?@user1870638
Display
属于同一个包,所以我想我不需要导入。不幸的是,有一个也不能解决问题@AndrewThompson
Main
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文件夹中,它肯定会工作,但我需要某种分离。