javac:编译一个使用其他类的.java文件

时间:2012-05-07 00:40:01

标签: java compiler-errors

我有3个java文件

a.java  
b.java  
c.java  

我设法使用

为a和b生成.class文件
javac example/a.java  
javac example/b.java  

但是当我为c.java做同样的事情时,我得到了错误 错误:找不到符号b和c

有关如何解决此问题的任何建议?

所有java文件都在同一个文件夹中

2 个答案:

答案 0 :(得分:16)

当您尝试编译类a时,必须在类路径中包含类bc。这允许编译器验证它们是否存在,找出它们具有的方法等等。

javac对包名和类路径非常敏感。最简单的方法是同时编译所有三个,如javac example/a.java example/b.java example/c.java

如果你转到示例的父目录(让我们称之为src),那么你可以运行以下命令:

javac -cp src src/example/c.java

您必须这样做的原因是因为您的类将其包列为example。由于您的包名称,javac正在其类路径中查找example目录,它希望找到a.classb.class

答案 1 :(得分:2)

当您运行example/时,可能您不在javac目录中。尝试

javac -cp example c.java

或只是cd进入该目录。类路径不会自动解析为c.java 依赖的类。