我正在从命令行执行程序并在其中使用包。我的程序文件名是 TestA.java 和 TestB.java。
我最初在下面执行了 javac TestA.java
以上没有问题,它也为以下生成了类文件,我正在观察 javac TestB.java 问题
输出 :
TestB.java:2: error: '.' expected
import TestA;
^
TestB.java:2: error: ';' expected
import TestA;
^
2 errors
和 TestA.java 文件是
package a.b;
class TestA {
public static void methodPublic(){
methodPrivate();
}
protected static void methodProtected(){
methodPrivate();
}
static void methodDefault(){
methodPrivate();
}
private static void methodPrivate(){}
}
TestB.java 内容是:
package a.b;
import TestA;
public class TestB {
public static void main(String args[]) {
TestA.methodPublic();
TestA.methodProtected();
TestA.methodDefault();
}
public static void methodPublic() {
}
protected static void methodProtected() {
}
static void methodDefault() {
}
private static void methodPrivate() {
}
}
我通过导航到这两个文件所在的 b 文件夹来执行 javac。
我通过导航到这两个文件所在的 b 文件夹来执行 javac。
你不想那样做;每个类的完全限定类名包括包。它们形成一棵树。很像你的文件系统。从b
文件夹向上移动两个目录(到包含a
- 例如cd ../..
或cd ..\..
在 Windows 上的文件夹)。然后
javac -cp . a/b/TestA.java a/b/TestB.java
此外,您通常希望将其写入“二进制”输出文件夹。所以
javac -cp . -d bin a/b/TestA.java a/b/TestB.java
最后,您不需要,import TestA
因为它与TestB
. 但是,如果你想,你需要
import a.b.TestA;
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句