gpt4 book ai didi

java - 使用Java包时编译错误?

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

我知道这个问题非常基本,但经过几次谷歌搜索后我找不到答案。我是 Java 新手。今天学习了java包。我有 A 类,如下所示:

package hello;

public class A {

}

我还有使用 A 类的 B 类:

package hello;

public class B {
public static void main(String[] args) {
A a = new A();
}
}

A 类和 B 类放在“hello”文件夹中。当我编译B时,我得到这样的错误:

B.java:5: error: cannot find symbol
A a = new A();
^
symbol: class A
location: class B
B.java:5: error: cannot find symbol
A a = new A();
^
symbol: class A
location: class B
2 errors

编辑:在 cmd 中输入

>>javac A.java

>>javac B.java

B.java:5: error: cannot find symbol
A a = new A();
^
symbol: class A
location: class B
B.java:5: error: cannot find symbol
A a = new A();
^
symbol: class A
location: class B
2 errors

我尝试使用此命令进行编译:

>>javac *.java

>> java B
Exception in thread "main" java.lang.NoClassDefFoundError: B (wrong name: hello/
B)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)

最佳答案

尝试在 hello 目录中同时编译两者:javac *.java

如果你在没有 A 的情况下编译 B,java 不知道 A,所以你会得到错误。如果您编译两者(使用 *.java),javac 可以正确链接。

要运行,请尝试以下操作:从 hello 转到一级(如您可以看到 hello 文件夹)。然后输入java hello.B。它应该有效。这样做的原因是因为我们将它打包在 hello 下,java 需要 FQCN(完全限定类名),告诉它 B 位于 hello 文件夹中。

关于java - 使用Java包时编译错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20015012/

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