torutkのブログ

ソフトウェア・エンジニアのブログ

Windows XPにjdk8 b132をインストールしてみた

Java SE 8はサポートプラットフォームからWindows XPを除外しているので動作保証はされていません。
が、Windows XPJava SE 8を入れて動かしている例がありました。

現在保有しているノートPC(Windows XP)が古く今更新しいOSを入れるのも厳しいため、JDK8がどこまで動くのか(動かないのか)を試すのも含めてインストールにチャレンジしてみました。

まず、jdk8 b132のWindows 32bit版をダウンロードします。

これを実行すると、「プロシージャエントリポイント RegDeleteKeyExA がダイナミックリンクライブラリADVAPI32.dllから見つかりませんでした。」とエラーになります。おや、「Windows XPはサポートされません」的なエラーメッセージではなくいきなりWindows Vista以降で追加された関数の呼び出しでエラーです。
しかし、これはインストーラの問題なので、インストーラを使わず手作業でインストールをします。

7zipツールでjdk-8-fcs-bin-b132-windows-i586-04_mar_2014.exeを解凍します。すると、tools.zipというファイル1つが取り出せます。これを、7zipでもう1回解凍します。解凍先は、D:\java\jdk1.8.0などJAVA_HOMEにしたいディレクトリを作りそこを指定します。

D:\java\jdk1.8.0
   +-- bin
   +-- db
   +-- include
   +-- jre
   +-- lib
   +-- javafx-src.zip
   +-- LICENSE
   +-- README.html
   +-- release
   +-- THIRDPARTYLICENSEREADME.txt
   +-- THIRDPARTYLICENSEREADME-JAVAFX.txt

とおなじみのディレクトリツリーができました。しかし、jreやlibディレクトリの中を見ると、
rt.jarやtools.jarがなく、代わりにrt.pack、tools.packなど拡張子がjarではなくpackとなったファイルが存在します。これはJDKに含まれるツールpack200で解凍すると本来のjarファイルになります。

コマンドプロンプトを起動し、次を実行します。

C:\> d:
D:\> cd java\jdk1.8.0
D:\java\jdk1.8.0> FOR /R %f IN (*.pack) DO "D:\java\jdk1.8.0\bin\unpack200.exe" -r -v "%f" "%~pf%~nf.jar"
Unpacking from D:\java\jdk1.8.0\jre\lib\charsets.pack to \java\jdk1.8.0\jre\lib\charsets.jar
com.sun.java.util.jar.pack.unpack.log.file=-
unpack.deflate.hint=(not set)
   :
D:\java\jdk1.8.0>

javaコマンドを実行してみます。

D:\java\jdk1.8.0> bin\java -version
java version "1.8.0"
Java(TM) SE Runtime Environment (build 1.8.0-b132)
Java HotSpot(TM) Client VM (build 25.0-b70, mixed mode)

D:\java\jdk1.8.0>

いけているようです。
JavaFXのサンプルをダウンロードし、Ensembleデモを実行してみましたが、動いています。