问题
在同一目录下写了两个类,然后想用命令行javac来编译,结果就出现cannot find symbol的错误。
Car.java
package src.com.week02;
public class Car {
private int year;
public Car(int theYear) {
year = theYear;
}
public int getYear() {
return year ;
}
}
Test.java
package src.com.week02;
public class Test {
public static void main(String[] args) {
Car car = new Car(2022);
System.out.println(car.getYear());
}
}
报错
.../src/com$ javac week02/Test.java
week02/Test.java:4: error: cannot find symbol
Car car = new Car(2022);
^
symbol: class Car
location: class Test
week02/Test.java:4: error: cannot find symbol
Car car = new Car(2022);
^
symbol: class Car
location: class Test
2 errors
解决方法
这个问题是由于使用package引起的,我们在使用javac编译时需要到package 的路径。
比如这里是:
package src.com.week02;
那么我们在week02 目录下编译就是错的 我们需要到src的上一级目录编译,就是package路径的上一级,要保证package解析能够完成。
$ javac src/com/week02/Test.java
然后再运行
$ java src.com.week02.Test
输出结果:2022
|