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

我有3个java文件

a.java b.java c.java 

我设法使用a和b生成.class文件

 javac example/a.java javac example/b.java 

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

关于如何解决这个问题的任何建议?

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

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

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

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

 javac -cp example c.java 

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