gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 01:19:07 25 4
gpt4 key购买 nike

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

最佳答案

I'm executing the javac by navigating to b folder where these two files exist.

你不想这样做; 包含包中每个类的完全限定类名。他们形成一棵树。很像你的文件系统。从 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

最后,您不需要导入 TestA,因为它与 TestB 位于同一包中。但是,如果您想要,您需要

import a.b.TestA;

关于java - 从命令行执行包的java程序时出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57638138/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com