You have to have classes a
and b
in your classpath when you try to compile class c
. This allows the compiler to verify that they exist, figure out what methods they have, etc.
javac
is pretty sensitive to package names and classpaths. The easiest thing to do is to compile all three at the same time like so javac example/a.java example/b.java example/c.java
.
If you go to the parent directory of example (let's call it src
), then you can run the following:
javac -cp src src/example/c.java
The reason you have to do it this way is because your classes have their packages listed as example
. Because of your package name, javac
is looking for the example
directory in its classpath, where it expects to find a.class
and b.class
.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…