我对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