简体   繁体   English

Java & 设置类路径 & 包的本地化

[英]Java & setting classpath & localization of packages

I've got structure of catalogs:我有目录结构:

/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 is a class in package "pkg" A 是包“pkg”中的一个类
  • Print is a class in package "pack" Print 是包“pack”中的一个类
  • B imports the packages "pkg" and "pack". B 导入包“pkg”和“pack”。

When I tried to compile B.java, I get an error:当我尝试编译 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.

Is it possible to include that packages without reorganization structure of files ?是否可以在不重组文件结构的情况下包含这些包?

You cannotreference Classes in a default package.您不能在默认包中引用类。 Put every class into a package.将每个类放入一个包中。

It's clearly saying that:很明显是这么说的:

class file contains wrong class name: pkg.A类文件包含错误的类名: pkg.A

that means probably you declared class name as pkg.这意味着您可能将类名声明为 pkg。 An instead of A. if you declare the package names as correct like this An 而不是 A. 如果你像这样声明包名是正确的

home/etc/studies/JAVA/Lab2/zad1

home/etc/studies/JAVA/Lab2/zad1/pkg,

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

You won't get the compilation error.你不会得到编译错误。

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

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

public class B extends A {
     'enter code here`
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM