【发布时间】:2018-11-15 12:45:01
【问题描述】:
(注意:我知道我在这里没有使用标准命名约定。这些名称只是为了简单起见。)
我有一个名为“PackageTest.java”的文件。它的唯一目的是在控制台上打印一行说“这有效!”。它属于一个名为 main 的包。在我的控制台中,我执行命令:
javac -d . PackageTest.java
这将创建一个名为 main 的新目录(文件夹),其中包含名为“PackageTest.main”的类文件。我 CD 进入它的父目录,然后执行以下命令:
java main.PackageTest
然后控制台显示:
This works!
所以文件执行了。那挺好的。现在我将 CD 放入“主”文件夹。我执行命令:
java main.PackageTest
只为得到结果:
Error: Could not find or load main class main.PackageTest
Caused by: java.lang.ClassNotFoundException: main.PackageTest
所以我试试这个命令:
java PackageTest
现在我得到了这个错误:
Error: Could not find or load main class PackageTest
Caused by: java.lang.NoClassDefFoundError: main/PackageTest (wrong name:
PackageTest)
为什么我必须在目录之外才能执行文件?
【问题讨论】: