Java JDK8 Windows XP安裝與“無... RegDeleteKeyExA 於... ADVAPI32.dll”的解決

查志強發表於2014-08-07

【原文:http://blog.163.com/fan_ya/blog/static/117723340201446607624/

在Java JDK8安裝時,我的Windows XP報“無... RegDeleteKeyExA 於... ADVAPI32.dll”錯,原來是對於Windows XP不再支援了,只能手動安裝。

值得期待的Java JDK8終於塵埃落定,千呼萬喚始出來。下載了jdk-8u5-windows-i586嘗 試安裝,可是在我的Windows XP下卻報錯
“jdk-8u5-windows-i586.exe - 無法找到入口
無法定位程式輸入點 RegDeleteKeyExA 於動態連線庫 ADVAPI32.dll 上。"。
只好請教萬能的Google。果然找到了vaxquis回的這個帖子
http://stackoverflow.com/questions/20965564/installing-jdk8-on-windows-xp-advapi32-dll-error
原來是Java不再支援Windows XP了。
http://mail.openjdk.java.net/pipermail/openjfx-dev/2013-July/009005.html

不過這次Java 8只是安裝程式不支援,而非JDK和JRE不能用。那麼就手動解決。
步驟是:
* 解壓exe檔案
* 解壓tools.zip
* 解壓*.pack檔案
* 測試

建好目錄,把JDK8安裝包jdk-8u5-windows-i586.exe放在打算安裝的目錄下,如C:\Program Files\Java\jdk8就可以開始了。我的JDK是在D:\usr\java\jdk8u5下。

解壓縮exe檔案需要7zip。沒有的話從 http://www.7-zip.org/下 載安裝。

開啟命令視窗 開始 -> 執行 -> cmd.exe


D:\usr\java\jdk8u5>set 7Z_HOME="C:\Program Files\7-Zip"


REM Step1.1 用7z展開exe,只會解壓出來一個tools.zip
D:\usr\java\jdk8u5>%7Z_HOME%\7z x jdk-8u5-windows-i586.exe

7-Zip 9.20? Copyright (c) 1999-2010 Igor Pavlov? 2010-11-18

Processing archive: jdk-8u5-windows-i586.exe

Extracting? tools.zip

Everything is Ok

Size:?????? 203761173
Compressed: 159077280


REM Step2 用7z展開tools.zip
D:\usr\java\jdk8u5>%7Z_HOME%\7z x tools.zip

7-Zip 9.20? Copyright (c) 1999-2010 Igor Pavlov? 2010-11-18

Processing archive: tools.zip

Extracting? LICENSE
Extracting? README.html
...
Extracting? release

Everything is Ok

Folders: 114
Files: 1341
Size:?????? 203388473
Compressed: 203761173


REM Step3 JDK自帶的unpack200解壓*.pack
D:\usr\java\jdk8u5>FOR /R %f IN (*.pack) DO "bin\unpack200.exe" -r -v "%f" "%~pf%~nf.jar"


D:\usr\java\jdk8u5>"bin\unpack200.exe" -r -v "D:\usr\java\jdk8u5\jre\lib\charsets.pack" "\usr\java\jdk8u5\jre\lib\charsets.jar"
Unpacking from D:\usr\java\jdk8u5\jre\lib\charsets.pack to \usr\java\jdk8u5\jre\lib\charsets.jar

...

A total of 4955 files (of which 4651 are classes) were written to output.

REM Step4 測試
D:\usr\java\jdk8u5>%JAVA_HOME%\bin\java -version
java version "1.8.0_05"
Java(TM) SE Runtime Environment (build 1.8.0_05-b13)
Java HotSpot(TM) Client VM (build 25.5-b02, mixed mode)

到此就大功告成了。
其中還有一些小插曲,Stackoverflow中解壓pack檔案使用的%%f,而我的cmd環境需要使用單百分號%f。

de>FOR /R %%f IN (*.pack) DO "%JAVA_HOME%\bin\unpack200.exe" -r -v "%%f" "%%~pf%%~nf.jar"

de>


相關文章