如何导入 java 包
How to import java package
我有两个文件夹 a
和 b
:
- 在
a
我有一个 ClassA.java
,
- 在
b
我有一个 ClassB.java
.
我想 ClassB.java
导入 ClassA.java
。我该怎么做?
如果只写import a.ClassA
,编译不了
可能您忘记了在 类 中声明包,没有该信息 Java 不知道导入的 类 属于包。
检查你的 类 是否像这样:
// ClassA.java
package a;
class ClassA {
...
}
// ClassB.java
package b;
import a.ClassA;
class ClassB {
...
}
您的文件夹结构必须是这样的:
src
-- src/a
----- ClassA.java
-- src/b
---- ClassB.java
然后转到 src 文件夹并键入:
Javac ./a/ClassA.java ./b/ClassB.java
根据您的评论,您似乎在 类 中添加了包声明,例如
package a;
public class ClassA{
//...
}
并且根据您的问题,您声称您还在 ClassB 中包含了 import a.ClassA
,例如
package b;
import a.ClassA;
public class ClassB{
//...
}
因此,要从 b
目录编译您的 ClassB,您需要在您的命令中包含您将要使用的其他包的本地化,在本例中是目录保存目录 a
的本地化。您可以通过设置 -classpath
参数(或更短的 -cp
)来实现。
因此,如果您在文件夹 b
中,您可以通过
javac -cp .. ClassB.java
其中 ..
表示父目录(包含 a
和 b
的目录)。
对于 运行 您的代码,您还需要指向保存应用程序使用的其他包的目录位置。所以你需要使用
java -cp .. b.ClassB
我有两个文件夹 a
和 b
:
- 在
a
我有一个ClassA.java
, - 在
b
我有一个ClassB.java
.
我想 ClassB.java
导入 ClassA.java
。我该怎么做?
如果只写import a.ClassA
,编译不了
可能您忘记了在 类 中声明包,没有该信息 Java 不知道导入的 类 属于包。
检查你的 类 是否像这样:
// ClassA.java
package a;
class ClassA {
...
}
// ClassB.java
package b;
import a.ClassA;
class ClassB {
...
}
您的文件夹结构必须是这样的:
src
-- src/a
----- ClassA.java
-- src/b
---- ClassB.java
然后转到 src 文件夹并键入:
Javac ./a/ClassA.java ./b/ClassB.java
根据您的评论,您似乎在 类 中添加了包声明,例如
package a;
public class ClassA{
//...
}
并且根据您的问题,您声称您还在 ClassB 中包含了 import a.ClassA
,例如
package b;
import a.ClassA;
public class ClassB{
//...
}
因此,要从 b
目录编译您的 ClassB,您需要在您的命令中包含您将要使用的其他包的本地化,在本例中是目录保存目录 a
的本地化。您可以通过设置 -classpath
参数(或更短的 -cp
)来实现。
因此,如果您在文件夹 b
中,您可以通过
javac -cp .. ClassB.java
其中 ..
表示父目录(包含 a
和 b
的目录)。
对于 运行 您的代码,您还需要指向保存应用程序使用的其他包的目录位置。所以你需要使用
java -cp .. b.ClassB