我有3个java文件
a.java
b.java
c.java
我设法使用
为a和b生成.class文件javac example/a.java
javac example/b.java
但是当我为c.java做同样的事情时,我得到了错误 错误:找不到符号b和c
有关如何解决此问题的任何建议?
所有java文件都在同一个文件夹中
答案 0 :(得分:16)
当您尝试编译类a
时,必须在类路径中包含类b
和c
。这允许编译器验证它们是否存在,找出它们具有的方法等等。
javac
对包名和类路径非常敏感。最简单的方法是同时编译所有三个,如javac example/a.java example/b.java example/c.java
。
如果你转到示例的父目录(让我们称之为src
),那么你可以运行以下命令:
javac -cp src src/example/c.java
您必须这样做的原因是因为您的类将其包列为example
。由于您的包名称,javac
正在其类路径中查找example
目录,它希望找到a.class
和b.class
。
答案 1 :(得分:2)
当您运行example/
时,可能您不在javac
目录中。尝试
javac -cp example c.java
或只是cd
进入该目录。类路径不会自动解析为c.java
依赖的类。