【发布时间】:2021-06-08 11:55:33
【问题描述】:
我的桌面上有两个文件夹 pack1 和 pack2。 pack1 包含 file1.java 文件,代码为:
public class File1 {
public static void main(String[] args){
}
}
pack2 包含 file2.java,代码为:
import pack1.File1;
public class File2 {
public static void main(String[] args){
}
}
我成功编译了file1.java,并且在pack1中创建了file1.class,但是编译file2.java时出错:
error: package pack1 does not exist
import pack1.File1;
^
1 error
从上面的错误我认为我只能导入存在于相同或子目录中的类/包,因为 Pack1 不在我正在编译的同一目录中(当前工作目录 = $HOME/Desktop/ pack2) 如果我错了,请纠正我。
如果我的理解是正确的,我该如何在 file2 中导入 file1。
【问题讨论】:
-
您应该描述您的实际问题。你遇到了什么错误?请具体。要导入 subPack1,您只需
import subPack1; -
从您的问题中读取,在同一模块的任何包中导入任何类应该没有任何问题。请提供示例。
-
导入与“当前”包无关。与目录的关联具有误导性。类从 Java 类路径中列出的基本文件夹中解析。
-
其实subPack1中有一个java文件,需要导入subPack2。假设我需要导入一个放在当前目录中的包,我将直接导入它,但是这里包 subPack2 放在 pack2 中,它具有父级层次结构。
-
如果我的回答不够充分,那么您真的需要阅读minimal reproducible example 并相应地增强您的问题。向我们展示足够的代码来重现问题。你看,你解释你的代码做了什么......并没有真正的帮助。因为这意味着我们必须依靠您真正了解您在这里所做的事情。