|
論壇說明 |
歡迎您來到『史萊姆論壇』 ^___^ 您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的! 請點擊這裡:『註冊成為我們的一份子!』 |
|
主題工具 | 顯示模式 |
2005-12-21, 05:20 PM | #1 |
註冊會員
|
請教一個java的package的問題
我寫先了二個類別,裡面有設定package程式碼如下
package tw.edu.fjtc.mis.weli; public class Cls_1{ public Cls_1() { System.out.println("cls1"); } } 另外一個類別 package tw.edu.fjtc.mis.weli; public class Cls_2{ public Cls_2() { System.out.println("clsx2"); } } 然後我執行compiler並且讓他依照package去產生目錄下了如下指令 javac -d . Cls_1.java javac -d . Cls_2.java 它就會依照package去產生目錄 然後我又寫了如下程式要測試 //import tw.edu.fjtc.mis.weli.Cls_1; //import tw.edu.fjtc.mis.weli.Cls_2; import tw.edu.fjtc.mis.weli.*;//如果單一使用這個import使用*會出問題但如果使用上述二個import就不會 public class Test{ public static void main(String []argv ){ Cls_1 cls1 = new Cls_1(); Cls_2 cls2 = new Cls_2(); } } 我執行compier指令有加classpath如下 javac -classpath . Test.java 現在問題來了,如果我是使用import tw.edu.fjtc.mis.weli.*; 電腦就會跟我抱怨.... 但是我如果各別將那二個cls_1 and cls_2各別import進來不使用*號就不會抱怨 import tw.edu.fjtc.mis.weli.Cls_1; import tw.edu.fjtc.mis.weli.Cls_2; 請問這是什麼問題呢....難道自己寫的package不能使用星號(*)嗎?? 我是java新手請多指教 謝謝 |
送花文章: 5,
|
2005-12-22, 09:12 AM | #4 (permalink) |
註冊會員
|
大大
錯誤訊息如下 weli-vnc~/12_19_t> javac -classpath . Test.java Test.java:6: cannot access Cls_1 bad class file: ./Cls_1.java file does not contain class Cls_1 Please remove or make sure it appears in the correct subdirectory of the classpath. Cls_1 cls1 = new Cls_1(); ^ 1 error |
送花文章: 5,
|
2005-12-22, 10:13 AM | #5 (permalink) |
管理版主
|
這好像是常可見的問題 (個人是沒寫過java啦)
兩個要點 1 因為你以編譯過一次該class 所以第二次 javac -classpath . Test.java 就會因為先前的成果出現問題 所以請刪除先前 javac -d . Cls_1.java (也就是 ./Cls_1.java) javac -d . Cls_2.java (也就是 ./Cls_2.java) 的成果 接著直接 javac -classpath . Test.java (這就是為何 snoopy 卻可以的原因) 2 這與 java 編譯器的智慧有關 ^^|| -classpath . 等於使用 當前目錄 建議 請明確寫出,比如 c:\test (或在java環境參數 CLASSPATH 中定義) 參考資料: http://66.102.7.104/search?q=cache:m...&lr=lang_zh-CN |
送花文章: 2011,
|