嗨,我有3个Java文件
a.java
b.java
c.java
我成功地通过以下方式为a和b生成了.class文件
javac example/a.java
javac example/b.java
但是当我对c.java做同样的操作时,出现了错误:error: cannot find symbol b and c。
你有什么建议可以解决这个问题吗?
所有的Java文件都在同一个文件夹中。
嗨,我有3个Java文件
a.java
b.java
c.java
我成功地通过以下方式为a和b生成了.class文件
javac example/a.java
javac example/b.java
但是当我对c.java做同样的操作时,出现了错误:error: cannot find symbol b and c。
你有什么建议可以解决这个问题吗?
所有的Java文件都在同一个文件夹中。
在尝试编译类c
时,你必须在类路径中拥有a
和b
类。这样可以让编译器验证它们的存在,找出它们拥有哪些方法等等。
javac
对包名称和类路径非常敏感。最简单的做法是像下面这样同时编译这三个类:javac example/a.java example/b.java example/c.java
。
如果你进入example
的父目录(我们称之为src
),那么你可以运行以下命令:
javac -cp src src/example/c.java
你需要这样做的原因是因为你的类将其包名列为example
。由于你的包名,javac
在其类路径中寻找example
目录,期望在其中找到a.class
和b.class
。
可能您在运行javac
命令时不在example/
目录下。请尝试:
javac -cp example c.java
或者只需 cd
到该目录。类路径不会自动解析 c.java
中依赖的类。