我有一些位于classes/com/scja/exam/tutorial/planets
文件系统中的类。我正在尝试编译位于classes/com/scja/exam/tutorial/
. 我必须手动导入吗?我正在尝试使用以下命令进行编译:
javac -d 类 -cp 类/com/scja/exam/tutorial/planets/:. src/com/scjaexam/tutorial/GreetingsUniverse.java
似乎 java 找不到这个文件需要的类。
我有一些位于classes/com/scja/exam/tutorial/planets
文件系统中的类。我正在尝试编译位于classes/com/scja/exam/tutorial/
. 我必须手动导入吗?我正在尝试使用以下命令进行编译:
javac -d 类 -cp 类/com/scja/exam/tutorial/planets/:. src/com/scjaexam/tutorial/GreetingsUniverse.java
似乎 java 找不到这个文件需要的类。
了解当 Java 搜索名为 的类时aaa.bbb.ccc.MyClass
,它会在类路径中的每个目录中搜索名为“aaa”的目录。找到一个,它将在该目录中搜索“bbb”,然后,如果找到“ccc”,则实际查找“MyClass.class”。如果你创建你的类路径-cp aaa/bbb/ccc
,那么 Java 会在那里寻找,找不到“aaa”,然后放弃。
包中的类必须导入它使用的类(不使用它们的完全限定名),这些类不在同一个包中(不在 java.lang 中)。存储类的目录必须与包匹配,但您可以有多个包含类的根目录(或 jar)。
您的命令不起作用,因为您将包的目录 ( classes/com/scja/exam/tutorial/planets/
) 放在类路径中,而不是放在根目录 ( classes
) 中。