gpt4 book ai didi

java - 创建一个目录,分别存放源文件和类文件。但是,我无法将一个类扩展到同一包中的另一个类

转载 作者:太空宇宙 更新时间:2023-11-04 09:38:44 24 4
gpt4 key购买 nike

以下是我尝试创建的目录流:

公司文件夹。

在公司文件夹下,我有class文件夹和source文件夹。

在源文件夹下我有 pack1 文件夹。

->公司\类别

->公司\源\pack1

在 pack1 文件夹中,我保存了两个源文件:A.java 和 B.java,其中 B 类扩展了 A 类。

->公司\source\pack1\A.java

->公司\source\pack1\B.java

现在我要编译A类和B类,并将A和B的类文件存放在Company\class\pack1

类文件应该这样存储:

->公司\class\pack1\A.class

->公司\class\pack1\B.class

通用代码:

package pack1;
public class A
{
//class A implementation
}

----------------------------------------
package pack1;
public class B extends A
{
//class B implementation
}

我在命令提示符中使用的命令是

F:\company\source\pack1> javac -d ../../class A.java

没有问题。 A.class 是在 company\class\pack1

内创建的

但是,我尝试编译 B.java

F:\company\source\pack1> javac -d ../../class B.java

我收到以下错误:

B.java:3: error: cannot find symbol
public class B extends A
^
symbol: class A
1 error

我到处寻找。我因此无法休眠。我是java初学者,我想知道为什么我无法从类A继承到类B,即使两个源文件都在同一个文件夹中。

请详细介绍一下。谢谢

最佳答案

编译类 B 要求编译器知道类 A。它不是编译器正在处理的源的一部分,也不在类路径上。所以我看到的两个解决方案是:

a) 将源代码编译在一起,例如

javac -d ../../class A.java B.java

b) 确保编译 B 时可以在类路径中找到类 A:

javac -d ../../class A.java
javac -d ../../class -cp ../../class B.java

关于java - 创建一个目录,分别存放源文件和类文件。但是,我无法将一个类扩展到同一包中的另一个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56198815/

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