我对 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
这里我给出的类路径为xcom,其中有A.class。但仍然没有找到A类。为什么会这样?
最佳答案
如果您的类位于包 xcom 中,那么您的类路径需要位于该包正上方的目录中。在这种情况下,类路径应该是 foo/test。
如果您当前的目录是 foo/test,那么这应该是您的 javac:
javac -classpath . xcom/B.java
关于java - 不明白 javac 对 -classpath 的以下使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8880289/