Java 为什么指定的类路径没有';找不到扩展类?
我一直在乱搞类路径等,有一些东西我完全不明白 假设我们有两个文件在dir结构中,如下所示:Java 为什么指定的类路径没有';找不到扩展类?,java,classpath,javac,cp,Java,Classpath,Javac,Cp,我一直在乱搞类路径等,有一些东西我完全不明白 假设我们有两个文件在dir结构中,如下所示: [current dir] | org | amigo | |---A.class |---B.java A类: package org.amigo; public class A {} B类: package org.amigo; public class B extends A {} 到目前为止还不错。。。现在,在当前目录中,我们调用 javac org\amigo\B.java 这可以很好地
[current dir]
|
org
|
amigo
|
|---A.class
|---B.java
A类:
package org.amigo;
public class A {}
B类:
package org.amigo;
public class B extends A {}
到目前为止还不错。。。现在,在当前目录中,我们调用
javac org\amigo\B.java
这可以很好地编译类。下一步让我们试试
javac -cp . org\amigo\B.java
这同样有效。但是当我们试着跑的时候
javac -cp .:org org\amigo\B.java
我们得到一个:
cannot find symbol
symbol: class A
public class B extends A {
^
1 error
呜呜。。。。我的问题是-为什么这不起作用
(当然,我们可以用-cp.[any dir]
替换-cp.:org
,仍然可以得到相同的结果。)
据我所知(我是否?…-)-classpath
选项,我们只需指定在哪些目录中搜索所需的类。那么,如果A.class存在于其中一个目录中,它是否应该工作?我的意思是-只有-cp.
选项起作用了 在Windows上,路径分隔符是“;”。因此,您没有说“look in.and in org”,而是显式地声明VM应该查找类的路径是“..:org”,它不存在。但同时,它禁止VM在当前目录中查找,因此它找不到类