【问题标题】:Error package does not exist java错误包不存在java
【发布时间】:2015-06-05 00:13:42
【问题描述】:

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

  • java代码

    • tester.java
    • 我的包

      • 补习班

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

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

【问题讨论】:

    标签: java import packages


    【解决方案1】:

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

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

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

    并定义了以下类:

    Tester.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 期望它们遵循约定。

    【讨论】:

      【解决方案2】:

      当您编译时,它正在寻找 .java 文件。将 Cram.java 文件放在那里,然后再次尝试编译。

      在 Algo.java 中更改您的导入。您正在寻找 pack.Cram,并且您指出它是 mypackage.Cram。

      【讨论】:

      • 另外,确保 Cram.java 声明它在一个包中。打包我的包裹;公共课补习班 { ... }
      • 是的,我也有,我看过不少论坛帖子,但似乎都没有帮助。
      • 查看我的编辑。您的导入正在寻找 pack.Cram,而不是 mypackage.Cram。
      猜你喜欢
      • 2011-09-16
      • 2016-05-24
      • 1970-01-01
      • 2023-02-14
      • 2020-11-07
      • 2020-05-23
      • 2023-03-08
      • 1970-01-01
      相关资源
      最近更新 更多