java包:找不到符号(2)

时间:2014-01-16 13:02:06

标签: java compiler-errors package

我的问题与此问题几乎相同:java packages: cannot find symbol

假设你有两个类A和B,分别在A.java和B.java文件中声明,B类在A类中使用。然后命令行“javac A.java”将完美地工作。但不知何故,如果你在同一个包中添加A和B(在每个文件的开头添加行:“package toto;”),那么“javac A.java”将给出符号“B”不能成为的错误找到。

上面给出的解决方案(java packages: cannot find symbol)是调用编译行:“javac A.java B.java”,这是有效的。我想知道是否有解决方案使其工作,但一次编译一个java文件。 (我使用java 7)。

提前致谢

2 个答案:

答案 0 :(得分:0)

A使用BB不使用A,对吧?这是我猜你的问题。在此基础上,您应首先编译B然后编译A

javac B.java //generates B.class
javac -cp . A.java 
//It is important to add current-folder (location of B.class) in classpath

以上doens't使用package声明,对于使用package,我认为上面链接中发布的解决方案应该可以正常工作:

假设你的目录结构是:

main -|
     toto -|
           A.java, B.java

所以在主目录中:

$main: javac -sourcepath ./toto -d ./toto B.java
$main: javac cp ./toto -sourcepath ./toto -d ./toto A.java

上面对totosource文件夹使用bin

答案 1 :(得分:0)

您必须将A.java和B.java移动到toto文件夹中。 请参阅:Managing Source and Class Files