Re: [J2SE] class loader

看板java作者 (wctang)時間17年前 (2008/06/17 02:46), 編輯推噓1(101)
留言2則, 1人參與, 最新討論串6/7 (看更多)
※ 引述《csihcs (非天夜翔)》之銘言: : ※ 引述《wctang (wctang)》之銘言: : : 不是一定要用 jar,用 jar 和把 .class 放到一個目錄是相同的。 : : 這裡這麼做只是為了讓環境變得比較單純... : : 至於沒有 jar 的程式,其實 jre 本身就可以產生 jar 了: : : http://java.sun.com/docs/books/tutorial/deployment/jar/apiindex.html : : 這裡這麼做只是為了讓說明方便。 : : (其實 javac 也可以由 java 來呼叫而不用外部程式,但應該就不內建在 jre 內了) : Q1: : 我嘗試不用 classes.jar 把 .class 包起來,而直接用 .class 卻發現, : 輸出會變成 : bfe : bfe : 而不會是預期的 : bfe : aft : 怎麼會變成這樣咧?? : 這樣是不是代表著必須使用 jar 檔來做到 runtime update class?? : 還是因為我的 url 打錯的關係, : new URL("file:classes.jar"); : new URL("file:."); // <- 我認為這樣是使用 .class 其實,我的確一直是用 jar 來做的。但我不認為只能用 jar 根據 http://java.sun.com/j2se/1.4.2/docs/api/java/net/URLClassLoader.html "Any URL that ends with a '/' is assumed to refer to a directory." 這可能是理由。 : Q2: : 我用了 sun.tools.jar.Main 這個 class : 來取代 Runtime.getRuntime... 那一行, : 但是 compile 的時候卻跟我說一個警告就是 : sun.tools.jar.Main 是 Sun 專有的 API,未來的版本可能會被移除。 : 那我該怎麼做可以不使用 Runtime class 來呼叫 jar 這個外部程式而使用內建的, : Q3: : 網址中教學的部份是 runtime 使用已經建好的 jar 檔, : 而不是 runtime 時建立 jar 檔, : 難道 Sun 是故意不讓 Programmer 在 runtime 建立 jar 檔使用?? : 問題很多,謝謝各位大大看完與指教~~~ m(_@_)m ㄟ,其實我想說不用理那個警告,不過,基於 jar 其實就是 zip,所以用 ZipOutputStream 應該也是一樣的... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.127.126.90

06/17 03:05, , 1F
剛剛試過用 new URL("file:/"); 了
06/17 03:05, 1F

06/17 03:06, , 2F
output 還是 bfe bfe Q.Q"
06/17 03:06, 2F
文章代碼(AID): #18LhKKyf (java)
討論串 (同標題文章)
文章代碼(AID): #18LhKKyf (java)