Java&设置classpath&包的本地化

时间:2015-08-09 21:05:47

标签: java classpath packages

我有目录结构:

/home/etc./studies/JAVA/pack/Print.java
/home/etc./studies/JAVA/Lab2/zad1/pkg/A.java
/home/etc./studies/JAVA/Lab2/zad1/B.java
  • A是包中的一个类" pkg"
  • 打印是包中的一个类" pack"
  • B进口包裹" pkg"和"打包"。

当我尝试编译B.java时,出现错误:

B.java:4: error: cannot access A
public class B extends A{
                       ^
bad class file: /home/etc./studies/java/A.class
class file contains wrong class: pkg.A
Please remove or make sure it appears in the correct subdirectory of 
the classpath.

是否可以包含没有文件重组结构的包?

2 个答案:

答案 0 :(得分:1)

您不能在默认包中引用类。将每个班级都放入一个包中。

答案 1 :(得分:1)

它明确地说 类文件包含错误的类名:pkg.A 这意味着您可能将类名称声明为pkg.A而不是A. 如果你像这样声明包名称是正确的

家的/ etc /研究/ JAVA /实验2 / zad1

家的/ etc /研究/ JAVA /实验2 / zad1 / pkg中,

/home/etc/studies/JAVA/Lab2/zad1/B.java

你不会得到编译错误。

package home.etc.studies.JAVA.Lab2.zad1;

import home.etc.studies.JAVA.Lab2.zad1.pkg.A;

公共类B扩展A {      '在这里输入代码' }