Re: [J2SE] class loader
※ 引述《wctang (wctang)》之銘言:
: ※ 引述《csihcs (非天夜翔)》之銘言:
: : 這邊對於這兩行 Runtime 有點疑惑,
: : 如果要跑的機器沒有 jar 這一支程式,該怎麼處理,
: : 另外就是一定要用 jar 檔的方式,而不能直接用 class 檔嗎???
: : 可以請大大解惑一下嗎~~謝謝~~ m(_@_)m
: 不是一定要用 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
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
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.104.31.81
討論串 (同標題文章)