gpt4 book ai didi

java - java报错包不存在

转载 作者:行者123 更新时间:2023-12-01 11:27:57 25 4
gpt4 key购买 nike

我正在尝试导入我创建的包,我的文件结构如下:

  • java代码

    • 测试器.java
    • 我的包

      • 补习类

在我的测试器中,我使用以下方式导入包:import mypackage.Cram;但是当我尝试编译 tester.java 时,我得到以下信息错误:包 mypackage 不存在。任何帮助将非常感激。这是错误; algo 是我的 tester.java,pack 是 mypackage。

algo.java:6: error: package pack does not exist
import pack.Cram;
^

最佳答案

如果您同时编译所有文件,那么您应该能够按原样使用您的代码,前提是您的类已正确定义并且位于 所示的目录结构中package 关键字。

假设您有以下目录树(如原始帖子中所示):

javacode
Tester.java
mypackage
Cram.java
classes
<.class files will be placed here later>

并定义了以下类:

测试器.java:

import mypackage.Cram;

public class Tester {
public static void main(String[] args) {
Cram c = new Cram();
c.doSomething();
}
}

Cram.java:

package mypackage;

public class Cram {
public void doSomething() {
System.out.println("Hello from Cram!");
}
}

您可以使用以下命令将所有这些文件编译到一个目录中(通常,IDE 将编译到“classes”或“bin”目录):

> javac -d classes Tester.java mypackage\Cram.java

这会将所有类文件放置在“classes”目录中

classes
Tester.class
mypackage
Cram.class

然后您可以使用以下命令运行:

> java -cp classes Tester

并产生输出:

Hello from Cram!

如果您像库一样与 Tester.java 分开编译包,那么您可以做同样的事情,只需使用一些单独的命令。

编译mypackage.Cram:

> javac -d classes mypackage/Cram.java

这会将 .class 文件放在同一类目录中。当您尝试编译 Tester.java(使用 mypackage.Cram)时,您只需告诉编译器您的类在哪里:

> javac -d classes Tester.java

然后运行:

> java -cp classes Tester

产生相同的输出。

我的猜测是,你的类和名称都被破坏了,Java 希望它们遵循约定。

关于java - java报错包不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30656319/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com