我的目录结构如下所示。
PackagesUnit3/com/myname/start/PackagesTest.java
(这个类包含我的main和import语句“import com.systems.mui.*;)
PackagesUnit3/com/systems/mui/Test.java
(该类包含包语句“package com.systems.mui;”)
使用 PackageUnit3 作为我的基本目录,我可以使用语句成功编译这两个类
"javac com/myname/start/PackagesTest.java"
但是我无法使用命令运行代码
"java com.myname.start.PackagesTest"
Error: "Exception in thread "main" java.lang.NoClassDefFoundError: com/myname/start/PackagesTest (wrong name: PackagesTest)"
编译器成功地.class
为每个 java 类生成了文件,并将它们放置在与源文件相同的位置。
根据 Horstmann,“Core Java”第 9 版。页。186,我的“java”命令语法应该可以工作。
我不应该指定当前目录 ("."),因为我没有使用类路径 (-cp) 选项。
注意:我使用“SUBST R:”命令将 PackagesUnit3 目录建立为基本目录。我的实际命令行看起来像R:>
有什么建议么??