我对SCJP书中的以下问题不太清楚(尽管我阅读了解决方案和解释)。

考虑以下目录结构:

foo --> test --> xcom --> A.class, B.java


这里foo,test和xcom是目录。 A.class和B.java是xcom目录中的文件。

以下是相应文件的源代码:

A.java

package xcom;
public class A { }


B.java

package xcom;
public class B extends A { }


默认的类路径是/ foo。

现在,为了编译B.java,我将当前目录保留为test并给出:-

javac -classpath xcom xcom/B.java


在这里,我将类路径指定为具有A.class的xcom。但是仍然找不到A类。为什么会这样?

最佳答案

如果您的类在xcom软件包中,则您的类路径必须位于该目录的正上方。在这种情况下,类路径应为foo / test。

并且如果您当前的目录是foo / test,那么这应该是您的javac:

javac -classpath . xcom/B.java

10-06 01:15