簡體   English   中英

java包不存在和壞源文件

[英]java package does not exist and bad source file

所以我創建了一個名為util的文件夾,並在其中放置了四個類以及名為unit10Assignment的程序。 我創建了一個包util並在每個類代碼的頂部鍵入“package util;”,如下所示:

package util;

public class Employee

然后我寫道:

import util.*;
import javax.swing.JOptionPane;

public class unit10Assignment

在程序之上。 但是當我編譯它時,它會告訴我。 誰知道為什么? 我試着玩它,當我輸入import java.util *時它就消失了; 相反,但我不確定我的老師想要什么,因為她的例子沒有前面的java。

它還說“糟糕的源文件”“包不包含類Employee”然而,在我輸入package語句之前編譯並運行完美的所有內容並且我從那以后沒有對代碼進行任何更改。 如果我從員工類中刪除了package語句,則會出現相同的消息,但它會說另一個類不存在。

感謝您的任何幫助注意:無論我是否放入java.util或只是util,這個問題與壞源仍然出現。

謝謝你的幫助

我將假設您的項目設置如下:

util/
    Employee.java
    unit10Assignment.java
bin/

(如果不是,那很好 - 只要它們在某個文件夾中。但bin/應該存在。)

軟件包的工作方式是它們是硬盤驅動器上的文件夾 - 要導入的軟件包要求您要導入的文件夾和類都存在於該特定文件夾中 這就是為什么包很方便的原因 - 你可以有兩個名為Employee類,讓它們存在於完全不同的位置。 *

以下是在不使用IDE的情況下將這些編譯為類似於包的結構的方法。 將$ HOME替換為Java類文件夾的完整路徑。

javac -sourcepath $HOME/util -d $HOME/bin *.java

以下是您運行主類的方法:

java -cp $HOME/bin util.$MAIN_CLASS

這些標志的含義細分:

  • -sourcepath指示javac在此特定目錄中查找源文件。
  • -d指定.class文件的輸出目錄。
  • -cp指示java將此文件夾添加到其類路徑中。

*:實際上,非常大的項目通常可以使用與其他類相同的名稱; 如果你想使用特定的一個,你必須使用完全限定的類名

確保:

  • 文件名與類名匹配(例如Employee.java用於類Employee
  • 根據文件包(即util ),文件在相應的文件夾中

你在使用任何IDE嗎? 如果沒有,使用一個真正有助於這種事情。

暫無
暫無

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

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