2014年6月4日 星期三

如何製作可攜的 JDK

昨天突發奇想, JDK 有沒有免安裝版呢? 要開發 Java 通常都會安裝 JDK, 但如果使用的電腦不能讓你安裝程式怎麼辦? 會有這個想法也是因為公司有些電腦因為資安關係被設定成必須 MIS 管理員才能安裝, 那便無法在那台電腦開發程式了嗎?

答案是否, 我在下列網頁找到方法 :

How to Create a Portable JDK 1.7 on Windows
http://www.developershome.com/7-zip/

原來我們從 Oracle 下載下來的安裝程式 jdk-7u60-windows-i586.exe 事實上是用打包程式包起來的壓縮檔, 可用 winzip/7-zip/WinRAR 等軟體解壓縮, 裡面只有一個 tools.zip 的壓縮檔, 把它解壓縮到硬碟目錄, 例如 D:\jdk7, 然後打開 DOS 視窗執行下列指令 :

D:> for /r %x in (*.pack) do D:\jdk7\bin\unpack200 "%x" "%x.jar"

它會把 unpack200 目錄下的 .pack 檔加上 .jar 副檔名. 然後編輯如下一個 batch 檔 :

ren D:\jdk7\jre\lib\charsets.pack.jar charsets.jar
ren D:\jdk7\jre\lib\deploy.pack.jar deploy.jar
ren D:\jdk7\jre\lib\javaws.pack.jar javaws.jar
ren D:\jdk7\jre\lib\jfxrt.pack.jar jfxrt.jar
ren D:\jdk7\jre\lib\jsse.pack.jar jsse.jar
ren D:\jdk7\jre\lib\plugin.pack.jar plugin.jar
ren D:\jdk7\jre\lib\rt.pack.jar rt.jar
ren D:\jdk7\jre\lib\ext\localedata.pack.jar localedata.jar
ren D:\jdk7\lib\tools.pack.jar tools.jar

注意要修改為正確目錄 (此處為 D:\jdk7), 然後將此檔存為 .bat 檔, 執行此批次檔就會將 *.pacj.jar 檔改成 *.jar 檔. 這樣修改作業就完成了.

把這個 jdk7 存放於 USB 隨身碟, 帶到沒有安裝 JDK 的電腦, 然後在 DOS 視窗任何目錄下, 以 set path 指令設定 Java 執行路徑 :

set path=f:\jdk7\bin;    (假設 USB 為 F 碟)

這樣在沒有安裝 JDK 的電腦中的任何工作目錄都可以執行 javac 編譯指令與 java 執行指令了. 我實際用 USB 隨身碟測試了一番, 此法確實可達成讓 JDK 免安裝可攜之目的.


沒有留言 :