'cannot find symbol' 编译包的 class 时出现编译错误

'cannot find symbol' compilation error when compiling a class of a package

我创建了一个名为 mypack 的目录,并在该目录中添加了一个名为 A.java 的 Java 文件. A.java的代码如下:

package mypack;

public class A{
    public A(){
        System.out.println("Inside A");
    }
}

我在同一目录中添加了另一个名为 Demo.java 的文件。该文件的代码如下:

package mypack;

public class Demo {
    public static void main(String args[]) {
        A a = new A();
    }
}

问题是当我编译第二个文件时 Demo.java 我得到这样的错误:找不到符号 A

目录 mypack 如下所示:

不知道为什么Demo.java和A.java同一个包(mypack)的文件无法访问class A 即使我在 A.java 中将其声明为 public。 请有人帮忙!!

也许你可以使用

javac *.java

一次合并两个 java 个源文件。

要编译文件,请打开终端并输入

javac filename.java

到运行生成的class文件,使用

java filename

您可以这样做来编译所需的文件,就像您在问题中提到的情况一样:

javac Demo.java A.java

在这种情况下,这会编译您的 class 以及依赖项 A.java

或者您可以这样做,覆盖目录下的所有 .java 文件。

javac *.java

更多参考请参考this