Re: [J2SE] class loader
※ 引述《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
06/17 03:05, 1F
→
06/17 03:06, , 2F
06/17 03:06, 2F
討論串 (同標題文章)