我正在乱搞类路径等等。而且还有一些我完全无法得到的东西......
假设我们在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 {}
到目前为止一切都很好......现在,进入我们调用的current dir
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
Soooooo ....我的问题是 - 为什么这不起作用?
(当然,我们可以将-cp .:org
替换为-cp .:[any dir]
,但仍会得到相同的结果。)
据我所知(是吗?... -_-)-classpath
选项,它只是让我们指定在哪个目录中搜索所需的类。因此,如果A.class存在于其中一个目录中,那么它是否仍然可行?我的意思是 - 只有-cp .
选项有效!
答案 0 :(得分:0)
在Windows上,路径分隔符为“;”。因此,您没有说“查看。并在org中”,而是明确指出VM应该查找类的路径是“。:org”,它不存在。但同时禁止VM查看当前目录,因此它找不到类。