我有两个文件夹a
和b
:
a
中我有ClassA.java
,b
我有ClassB.java
。我想ClassB.java
导入ClassA.java
。我怎么能这样做?
如果我只是写import a.ClassA
,我就无法编译它。
答案 0 :(得分:0)
可能你忘了在类中声明包,没有那些信息Java不知道导入的类属于包。
答案 1 :(得分:0)
检查您的课程是否如下所示:
// 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
答案 2 :(得分:0)
根据您的评论,您似乎在类中添加了包声明,如
package a;
public class ClassA{
//...
}
根据您提出的问题,您声称自己还将import a.ClassA
包含在ClassB中
package b;
import a.ClassA;
public class ClassB{
//...
}
因此,要从b
目录编译ClassB,您需要在命令中包含您将要使用的其他软件包的本地化,在本例中是目录保存目录a
的本地化。您可以通过设置-classpath
参数(或更短-cp
)来完成此操作。
因此,如果您在文件夹b
中,则可以通过
javac -cp .. ClassB.java
其中..
表示父目录(同时包含a
和b
)。
要运行代码,您还需要指定包含应用程序使用的其他包的目录位置。所以你需要使用
java -cp .. b.ClassB