【问题标题】:Java error Package does not existJava错误包不存在
【发布时间】:2016-05-24 16:01:02
【问题描述】:

我的主文件夹是 ABC,里面有 2 个文件夹,分别命名为 classes 和 src,src 里面有 2 个文件夹,分别命名为 objectFile 和 testFile,objectFile 里面是 ABC.java,而 testFile 里面是 TestABC.java。(里面 classes 是一样的,但是 .类代替)现在 ABC 包含

package objectFile;
public class ABC
private int something;

而 TestABC.java 包含

package testFile;
import objectFile.ABC;

public class TestABC

错误说TestABC.java:2:错误:包objectFile不存在

导入 objectFile.ABC;

【问题讨论】:

  • 应该可以。你是如何编译你的课程的?您使用的是 IDE(如 NetBeans 或 eclipse)吗?尝试清理您的项目(删除 .class 文件),然后再次构建(编译)它。
  • 不,我正在使用 cmd(必需),试图清理它们但仍然没有工作

标签: java testing import directory package


【解决方案1】:

您是否指定sourcepath?这告诉编译器在哪里可以找到它需要导入的类。

javac -sourcepath src -d classes src\testFile\TestABC.java

请注意,这不仅会编译 TestABC.java,还会编译 ABC.java(因为您的 import 语句)。

然后您可以使用jar 命令将类放入存档中:

jar cfe myJavaArchive.jar testFile/TestABC -C classes .

这将cfilename myJavaArchive.jarentrypoint 创建一个新 jar >testFile/TestABCclasses 目录中的所有文件组成。

因为是入口点,所以TestABC必须有main方法,例如

package testFile;

import objectFile.ABC;

public class TestABC {

    public static void main(String[] args) {
        ABC abc1 = new ABC(1);
        ABC abc2 = new ABC(2);

        System.out.println("abc1.i is " + abc1.getI());
        System.out.println("abc2.i is " + abc2.getI());
    }
}

package objectFile;

public class ABC {

    private int i;

    public ABC(int i) {
        this.i = i;
    }

    public int getI() {
        return i;
    }
}

然后你可以使用java -jar命令执行代码:

java -jar myJavaArchive.jar

【讨论】:

  • 我按照你说的做了,它成功了,我把它编译成一个类,但是当我运行 jar 文件时出现问题,它说找不到或加载主类
  • 我添加了有关如何在创建 jar 时指定入口点的说明。
猜你喜欢
  • 2011-09-16
  • 1970-01-01
  • 1970-01-01
  • 2023-02-14
  • 2020-11-07
  • 2020-05-23
  • 2023-03-08
  • 1970-01-01
相关资源
最近更新 更多