2012-12-10 98 views
0

我瞎搞使用類路徑等,並有東西,我完全不明白......爲什麼指定的類路徑找不到擴展類?

假設我們有一個目錄結構兩個文件如下:A

[current dir] 
| 
org 
| 
amigo 
| 
|---A.class 
|---B.java 

類:

package org.amigo; 
public class A {} 

B類:

package org.amigo; 
public class B extends A {} 

到目前爲止克洪水......如今,在current dir是我們調用

javac org\amigo\B.java 

這編譯該類就好了。接下來我們試試

javac -cp . org\amigo\B.java 

這也適用。但是...當我們嘗試運行

javac -cp .:org org\amigo\B.java 

我們得到一個:

cannot find symbol 
symbol: class A 
public class B extends A { 
        ^
1 error 

Soooooo ....我的問題是 - 如何走到這一步不工作?

(當然,我們可以用-cp .:[any dir]取代-cp .:org,仍然得到同樣的結果。)

據我瞭解(我知道嗎?...... -_-)的-classpath選項,它只是讓我們指定在其中目錄搜索所需的類。因此,如果A.class出現在其中一個目錄中,那麼無論如何它都無法工作?我的意思是 - 只要-cp .選項工作!

回答

0

在Windows上,路徑分隔符是';'。因此,不是說「查找和查找組織」,而是明確指出虛擬機應該查找類的路徑是「。:org」,它不存在。但同時禁止VM查看當前目錄,因此它找不到類。

+0

OMG,釘它:)謝謝 – aMiGo