2012-04-11 85 views
1

我有3個類CustomerAddress,Customer和CustomerMain。javac -cp:找不到符號

客戶有一個import語句:

import org.abc.customers.CustomerAddress; 

雖然CustomerMain有一個import語句:

import org.abc.customers.CustomerAddress; 
import org.abc.customers.Customer; 

包所有這些類都是

package org.abc.customer 

現在,這個計劃在eclipse上工作正常,但是當我嘗試編譯並在cmd提示符下運行時,它不會編譯

javac CustomerAddress.java 

編譯罰款

則由於客戶依賴於CustomerAddress

我給

javac -cp . Customer.java 

但是編譯器會抱怨

error cannot find symbol CustomerAddress 

回答

4
  1. 編譯的類必須在其包裝結構相匹配的文件夾結構中存在。例如,類別com.foo.bar.A必須存在於文件夾com/foo/bar/內。
  2. 使用像ant或maven這樣的自動化構建工具來做這種事情的確很容易。

如果你決心通過命令行來構建,你首先需要編譯獨立報班:

javac -d com/abc/customers/ CustomerAddress.java Customer.java CustomerMain.java 

應該編譯類並將它們輸出某處的javac就能解決它們。

1

我知道這是不是你正在問,但我可以建議使用eclipse中內置的輸出嗎?

右鍵項目 - > 出口 - > 運行的JAR文件 - > 確保你有啓動配置右鍵 - > 選擇休息 - > 點擊Finish - > 使用的jar

1

有你通過編譯試過,這樣

javac *.java 
0

我不知道,如果它的發佈問題的神器,但是你包的聲明有沒有customer一個「S」和import語句有customers一個「s」。但是,在相同的包中,您不需要執行import

+0

謝謝..是的,它是發佈這個問題的神器。同一個包中的import語句是多餘的,但是它也有任何副作用,或者對代碼無害。 – LivingThing 2012-04-11 14:25:03

+0

只要你的包名拼寫正確,我相信它是無害的:-) – 2012-04-11 14:27:30