2012-05-07 37 views
4

HI一個.java文件我有3個java文件的javac:編譯它使用其他類在它

a.java 
b.java 
c.java 

我設法生成的.class兩個文件和文件b。使用

javac example/a.java 
javac example/b.java 

但當我做同樣的c.java我得到錯誤 錯誤:找不到符號b和c

關於如何解決這個問題的任何建議?

所有的Java文件都在同一個文件夾

+1

你想告訴我們c.java的代碼嗎? – MByD

+0

實際上a和b是假設,而c實際上是Order.java這裏是代碼Customer,Address,Shipping和Item是編譯時沒有任何問題的其他對象。由於我不能在這裏粘貼代碼,我在[鏈接]上發佈了代碼(http://www.coderanch.com/t/580168/java/java/javac-compiling-JAVA-file-which#2638811) – Rajeshwar

回答

13

當您嘗試編譯類c時,您必須在類路徑中使用類ab。這允許編譯器驗證它們是否存在,找出它們具有的方法等。

javac對包名稱和類路徑非常敏感。最簡單的做法是同時編譯所有三個,如javac example/a.java example/b.java example/c.java

如果你去實例的父目錄(姑且稱之爲src),那麼你可以運行以下命令:

javac -cp src src/example/c.java 

你必須做這種方式的原因是因爲你的班級有自己的包列爲example。由於您的軟件包名稱,javac正在其類路徑中查找example目錄,該目錄預計會找到a.classb.class

+0

java -cp示例c.java(無效的語法和路徑) – Rajeshwar

+0

javac示例/ a.java示例/ b.java示例/ c.java或javac * .java已運行 – Rajeshwar

+0

@Rajeshwar查看我的編輯。 –

2

想必你不是在example/目錄當您運行javac。嘗試

javac -cp example c.java 

或者只是cd進入該目錄。類路徑不會自動解析爲類c.java取決於

+1

如果他的包是可能會導致問題的示例 – 2012-05-07 00:46:57

+0

@Amir Afghani請查看[鏈接]上的最後一篇文章(http://www.coderanch.com/t/580168/java/java/javac-Compiling-JAVA-file- which #2638812) – Rajeshwar

+0

我從目錄內運行了javac命令 – Rajeshwar