【问题标题】:how to create a "package" in Java?如何在 Java 中创建“包”?
【发布时间】:2012-06-04 11:39:39
【问题描述】:

我有两个班级,Parent 和 Child。类的代码是这样的:

Parent.class

package test;
import java.util.*;

public class Parent {
    public static void main(String[] args) {
        Child child = new Child();
    }
}

Child.class

package test;
import java.util.*;

public class Child {
    public Child() {
        System.out.println("A Child object has been created");
    }
}

我将这两个类都放在一个名为“test”的目录中。我可以编译 Child.java 没有任何问题,但我不能编译父类。它说它找不到子类。有什么问题?

【问题讨论】:

  • 你在哪里编译这些来自?你能提供命令行吗?这些对我来说看起来不错。
  • CLASSPATH....著名的类路径...确保包含 test 的文件夹在类路径中
  • @LouisWasserman:我打开命令提示符并转到 .java 文件所在的目录,只是为了澄清该目录的名称与我在 .java 文件中使用的包名称相同.当我输入“javac parent.java”时,我会收到错误消息。我还尝试输入“javac test\parent.java”并且可以编译它,但是当我输入“java Parent”时收到错误消息。我很困惑

标签: java


【解决方案1】:

我猜你在错误的地方执行命令。如果你把代码放在 d:/test/ 中,你应该 在目录 d:/ 下执行你的命令。

因此,如果您将目录更改为 d:,您可以做正确的事情。 javac 测试\Child.java javac test\Parent.java

java test.Parent

你会得到你想要的..

【讨论】:

  • 现在它编译这两个类没有任何问题但是当我尝试“java test\Parent”错误名称:test/Parent!!
  • 它应该是 "java test.Parent" 。 test.Parent 是您的类 Parent 的名称。
  • 谢谢你,我可以编译它并使用你给我的指令运行它。现在的问题是我应该如何设置“PATH”,这样我每次运行文件时都不需要输入包名?
  • 我认为你犯了一个错误。 java 类的完整限定名是 "package_name.class_name" 。所以你不能在没有指定类的全名的情况下执行“javac” cammand。
  • 所以你不能在没有指定类的全名的情况下执行“javac” cammand。同时,我认为您的“PATH”意味着“CLASSPAHT”。您可以通过阅读书籍或谷歌获得更多信息。
【解决方案2】:

假设您的 java 文件位于 D:\test.你编译喜欢这样

     D:\>javac test/Child.java
     D:\>javac test/Parent.java

对你来说没问题。如果你使用一些 IDE,你的类没有问题。

【讨论】:

  • 我知道 IDE 很容易为我做这件事,但我想了解它的基础知识。谢谢你的回答。
【解决方案3】:

要做的是在编译父类时将生成的子类包含在类路径中。

SET CLASSPATH= (the path where your child.class exists);%CLASSPATH%;

以上需要做,因为父类依赖子类,没有它就无法编译

一些细节可以在这里找到:

http://docs.oracle.com/javase/tutorial/getStarted/problems/index.html

【讨论】:

  • 能否详细说明如何设置 PATH?
  • 不要篡改 PATH 只需使用 CLASSPATH。 SET CLASSPATH=(the path where your child.class exists);%CLASSPATH%;
  • 当您尝试学习这些基础知识时,请记住,通常使用 AntMaven 等构建工具编译多个类
猜你喜欢
  • 2013-03-23
  • 2017-05-14
  • 2021-07-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-10
  • 1970-01-01
相关资源
最近更新 更多