2014-04-13 107 views
-1

我有兩個班相關的Java類路徑

package xcom; 
public class A { } 

package xcom; 
public class B extends A { } 

目錄結構:

  • 富/測試/ XCOM/A.java
  • 富/測試/ XCOM/B.java

我先編譯A.java,然後刪除A.java文件,以便xcom現在包含 B.java和A.class,現在最後使用了ag ain xcom作爲當前目錄我編譯爲 B.java使用命令'javac B.java'和B.java是在同一個目錄下生成的,這個 是我弄糊塗的地方,因爲默認情況下javac命令不會搜索當前目錄 ,那麼爲什麼這個程序編譯。請幫忙!!

回答

0

javac只編譯B.java。它不會重新編譯A.java。相反,它使用編譯版本:A.classjavac預計存在於您的CLASSPATH中。由於B.java編譯得很好,您的CLASSPATH顯然設置正確。 A.java的存在是無關緊要的。

這是一些more information

+0

不,我沒有在我的電腦中設置任何類路徑。 – Aamir

+0

無論你是否設置它,它至少是隱式設置正確的,因爲'B.java'編譯得很好。也許它只是從你開始命令提示符的同一目錄中查找。我不能說,因爲我不知道你的具體設置。 – aliteralmind

+0

和你說它使用A.class,所以這意味着javac命令默認搜索當前目錄的類文件。 – Aamir