不同包中的java文件无法编译

时间:2016-04-16 05:58:50

标签: java

这是我的代码

package com.a;
public class A{}

我使用

编译
javac -d . A.java

我在com / a / A.claas

中编译

现在我创建了另一个类

package com.b;
import com.a.A;
class B extends A{}

javac -d . B.java编译它 并抛出错误

B.java:2: error: cannot find symbol
import com.a.A;
        ^
symbol:   class A
location: package com.a
B.java:3: error: cannot find symbol
class B extends A{}
              ^
symbol: class A
2 errors

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:2)

编译器正在检查你的代码,因为你只是同时编译类B而不编译类A,编译器会抛出一个错误,因为它不知道是什么{{ 1}}是。因此,要么使用

同时编译所有类
A

或告诉javac -d . A.java B.java 使用javac选项查找A类的位置。您指定的类路径应该是包含-classpath的.jar文件,或者是类结构的基目录。即如果您的课程A位于A,则您的课程路径为/foo/bar/com/a/A.class

/foo/bar/

同时查看javac -classpath . -d . B.java javac