'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!
我创建了一个名为 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!