2011年3月3日 星期四

javac cannot find symbol

在 dos 指令模式下編譯 java 時, 可能會出現 javac cannot find symbol 這個錯誤訊息.
舉例來說, 有個 dog.java 和 dogTestDrive.java, 前者是 純class, 後者是 main 程式進入點, 這裡會使用 dog 的類別. 當我們在執行
javac dog.java
時沒有問題, 而在執行
javac dogTestDrive.java
時, 系統回應 javac cannot find symbol 的訊息. 這個時候, 是因為系統找不到我們所建立的 dog.class 這個類別, 是的, 雖然在同一個目錄裡, 但就是找不到, 解決的方式是, 編譯時
javac dogTestDrive.java -classpath ./
使用 -classpath 跟 javac 編譯器說明類別的目錄在 ./ (現在的目錄) 這裡, 這樣就可以編譯成功. 然後執行
java dogTestDrive
就可以囉~~ 另外, 使用 java 時, 不要加上副檔案名稱 .class 哦~~

以上的例子, 我是以 Head First Java 裡的例子來說明的.