簡體   English   中英

為什么我無法在 Java 中編譯我打包的 class?

[英]Why I can not compile my packaged class in Java?

我正在做我的程序。 我正在使用 Sublime Text 並編譯基本的 Windows CMD。 我有文件夾,其中有每個文件( folde todolist )在這個文件夾中,我有 package。 在這個 package 我有 class (Gui.java( packgae (文件夾) gui_pckg ))。 此 class 中的代碼如下所示:

package  gui_pckg;

導入 javax.swing。 ; 導入 java.awt。 ;

公共 class 桂 {

public JFrame frame = new JFrame("To Do List");


public Gui() {
    frame.setSize(500, 800);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setVisible(true);
}

}

而且它編譯得很好。

但是,當我嘗試編譯 Main.java 時,它會引發錯誤。 Main.java 中的代碼:

import gui_pckg.Gui;

公共 class 主要 {

public static void main(String[] args) {
    Gui gui = new Gui();
}

}

對於編譯,我在 cmd 中輸入基本編譯命令。

cmd 中的命令

請幫忙。

使用 IDE。 當你有一個復雜的打包結構時,嘗試在命令行上編譯很快就會變得太麻煩而無法獲得回報。

如果沒有 IDE,您可以在重命名 ZEFE90A8E604A7C840E88D03A67F6B7D8 時調整您移動的文件的所有包並調整包文件的所有 package 名稱。 更不用說,即使你制作了 bash 腳本來編譯你的 java 程序,這也需要手動調整每個新文件。 TLDR:只需使用 IDE。

如果您絕對堅持不使用一個(完全不推薦)繼續,為避免復雜性,您的所有 java 類都應該在同一個 package (目錄),AKA,沒有包裝。 Java 在同一目錄中看到所有類。 您可以在不打包的情況下導入它們。

當你開始這樣的結構時:

|-bin
|-src
   |-util
   |   |-Util.java
   |-Main.java

然后您需要開始打包,因為並非所有文件都存在於同一目錄中。 避免這種情況,否則您將不得不手動設置類路徑、二進制文件和源文件夾。

在 bash 中,這類似於:

cd src; javac -cp ".:util" -d "../bin"./Main.java./util/Util.java

然后運行,您將擁有以下內容:

java Main

cd 到 src 實際上非常重要,因為如果您不在頂級根目錄中進行編譯,則這些包對 javac 沒有意義。

暫無
暫無

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

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