簡體   English   中英

錯誤包不存在java

[英]Error package does not exist java

我正在嘗試導入我創建的包,我的文件結構如下:

  • javacode

    • tester.java
    • mypackage的

      • Cram.class

在測試器中,我使用以下命令import mypackage.Cram;軟件包: import mypackage.Cram; 但是當我嘗試編譯tester.java時,出現以下錯誤:包mypackage不存在。 任何幫助將非常感激。 這是錯誤; 算法是我的tester.java,而包是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>

並定義了以下類:

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文件放在相同的classes目錄中。 當您嘗試編譯Tester.java(使用mypackage.Cram )時,只需告訴編譯器您的類在哪里:

> javac -d classes Tester.java

然后運行:

> java -cp classes Tester

產生相同的輸出。

我的猜測是,您的類和名稱都被弄亂了,Java希望它們遵循約定。

編譯時,它正在尋找.java文件。 將Cram.java文件放入其中,然后嘗試再次編譯。

在Algo.java中更改導入。 您正在尋找pack.Cram,並且您已經指出它是mypackage.Cram。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM