项目结构:不能在同一个包访问类,不会增加类路径
./src/com/example/Test.java
./src/com/example/Dog.java
Test.java
package com.example;
public class Test {
public void testing() {
Dog d = new Dog("Lab");
}
}
Dog.java
package com.example;
public class Dog {
private String breed;
Dog(String breed) {
this.breed = breed;
}
}
它编译成功时,我尝试此
.\src > javac com\example\Test.java
但是,当我做到这一点
.\src > javac -cp "C:\Tomcat\lib\servlet-api.jar" com\example\Test.java
有了这个错误
error: cannot find symbol
Dog d = new Dog("Lab");
^
symbol: class Dog
location: class Test
我猜这是因为现有的类路径被覆盖失败。我如何避免这种情况?
此外,可当它从\ SRC的父目录中运行,这样
javac src\com\example\Test.java
我得到同样的错误作为一个类路径的你解释更详细上为什么会失败。
对不起所有的困惑。
谢谢Jon Skeet帮忙。
我建议你把它改写成只有'Test.java'和'Dog.java'的[mcve] - servlet部分几乎肯定是一个红色的鲱鱼。 –
把'src'目录放在类路径中,我不能重现这个错误。你确定''C:\ Users \ AK051428 \ Desktop \ projects \ listener_test \ src“'和src'一样吗?为什么不把它指定为'src'? –
@JonSkeet我试图做到最小和简洁 – user3600999