java - 不明白 javac 对 -classpath 的以下使用

标签 java classpath javac

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

相关文章:

禁止原始类型的 Javac 标志?

java - 将自定义对象列表转换为 CharSequence

java - 尝试使用 OpenCV JAVA 检测图像中的人脸时出错

java - 升级还是不升级

java - 为什么我无法获取 org.h2.Driver?我用 maven

java - 使用类路径编译不寻常的 Java 类

java - Java 中 TSP 的动态编程方法

java - 找不到包,即使它同时位于构建类路径和运行时类路径中

java - Ant + Tomcat 部署 "failed to create task or type deploy"

java - Ant Javac 和 Commandline Javac 给出不同的结果