gpt4 book ai didi

java - 包语句与 .java 文件目录之间的关系?

转载 作者:行者123 更新时间:2023-12-04 18:03:34 25 4
gpt4 key购买 nike

考虑一个包层次结构 folder1/hi。 folder1 包含 B.java,hi 包含 A.java。

B.java:

package hi.a12.pkg;
public class B { }

A.java:

package a12.pkg;
public class A {B b; }

现在B.java编译成功了,但是A.java没有。

因为两者都应该在同一位置生成类文件。因此,他们应该能够在没有导入语句的情况下找到彼此。

但它仍然说找不到 B 类。

有人建议采取措施......或者出了什么问题......

最佳答案

Consider a package hierarchy folder1/hi. folder1 contains B.java and hi contains A.java.

因此 B.java 位于 folder1 中,A.java 位于名为 hi 的文件夹中。到目前为止一切顺利。

B.java 看起来像这样:

package hi.a12.pkg;
public class B { }

糟糕。 B.java 表示它位于名为 hi.a12.pkgpackage 中,但它在磁盘上的物理位置是 folder1 。这就是问题所在。将您的文件放在 package 语句指定的文件夹中,否则其他类将无法找到它们。

理解概念和解决问题的快速方法是:

  1. B.java中的package语句改为package folder1;
  2. A.java中的package语句改为package folder1.hi;
  3. import B in A.javapackage语句之后作为import folder.B;
  4. folder1 上面的一个目录编译 B.javajavac folder1\B.java
  5. folder1 上面的一个目录编译 A.javajavac folder1\hi\A.java

您可以在 Oracle documentation 中阅读所有相关信息

关于java - 包语句与 .java 文件目录之间的关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30985062/

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