文章目录

问题

在同一目录下写了两个类,然后想用命令行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

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐