从命令行执行包的java程序时出错

马爹利

我正在从命令行执行程序并在其中使用包。我的程序文件名是 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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章