java包:找不到符号
我有一个奇怪的错误。 我在同一个包中有2个类,但他们找不到对方。 从我记忆中来看,只要这些类在同一个包中,它们就应该能够调用彼此的方法。
我的代码看起来类似于:
在A.java中:
package com.mypackage; public class A{ public static int read(){ //some code } }
在B.java:
package com.mypackage; public class B{ public static void main(String args[]){ int x = A.read(); } }
它给了我一个cannot find symbol variable A
错误。
这两个类都依赖于一些.jar
文件,但是我已经将这些jar的路径包含到CLASSPATH
和A.java
编译得很好,但B由于某些原因找不到A …
当我删除package com.mypackage;
在这两个类中,然后他们编译好。
由于您正在编译不同包中的Java文件,因此您必须确保它们编译到适当的目录。
您可以使用此调用来执行此操作。 用源文件的位置替换$SRC
,您可以让$BIN
成为当前目录或计算机上的其他位置。
javac -sourcepath $SRC -d $BIN A.java B.java
当你想运行它们时,你必须再次手动将它们添加到类路径中(但这不是一件坏事)。
java -cp $BIN com.mypackage.B
这个调用应该有效; 只是确定了A.java和B.java驻留在我的桌面上。 使用-d
标志,确保在编译时,它们转到相应的包文件夹方案。
它应该是:
A.java
package com.mypackage; class A { public static int read(){ //some code } }
B.java
package com.mypackage; class B { public static void main(String args[]){ int x = A.read(); } }