Oracle で公開されている Java 6 u91 をインストールせずに使えるようにする方法

Java 6 アプリを使いたい。でも、インストールすると Java 6 有効になるので怖い。
ってことがあると思います。

Java SE 6 Reference Implementation
Java 6 のサポートが切れた後 Java 6u91 のWindows 版が RI 版で公開されています。
正規の方法で、最新使う場合はこのバージョンが最終になります。

・jdk-6u91-windows-i586.exe をダウンロード
・jdk-6u91-windows-i586.exe を起動する。
・すると、%USERPROFILE%\AppData\LocalLow\Sun\Java\jdk1.6.0_91 に

    546,304 jdk1.6.0_91.msi
 10,129,253 sb160910.cab
 13,181,008 sj160910.cab
       29,241 sp160910.cab
     108,289 sr160910.cab
 17,698,748 ss160910.cab
 30,803,154 st160910.cab
          1,636 sz160910.cab

ができる
・その中の st160910.cab を解凍すると tools.zip が出てきます。
・これをフォルダに展開します

bin\
include\
jre\
lib\
README.html
LICENSE
THIRDPARTYLICENSEREADME.txt

が出てくるはず。
・展開が終わったら、Java のインストーラーはキャンセルで終了させる
・コマンドプロンプトを開いて、 展開した jre\lib フォルダに移動します
・以下のコマンドを実行します

\Sun\Java\jdk1.6.0_91\jre\lib>FOR /R %f IN (*.pack) DO "..\bin\unpack200" -r -v "%f" "%~pf%~nf.jar"

Unpacking from \Sun\Java\jdk1.6.0_91\jre\lib\charsets.pack to \Sun\Java\jdk1.6.0_91\jre\lib\charsets.jar
com.sun.java.util.jar.pack.unpack.log.file=-
unpack.deflate.hint=(not set)
com.sun.java.util.jar.pack.unpack.remove.packfile=true
com.sun.java.util.jar.pack.verbose=1
com.sun.java.util.jar.pack.unpack.modification.time=(not set)
unpacker completed with status=0
A total of 3408742 bytes were read in 0 segment(s).
A total of 6645880 file content bytes were written.
A total of 713 files (of which 704 are classes) were written to output.

Unpacking from \Sun\Java\jdk1.6.0_91\jre\lib\deploy.pack to \Sun\Java\jdk1.6.0_91\jre\lib\deploy.jar
com.sun.java.util.jar.pack.unpack.log.file=-
unpack.deflate.hint=(not set)
com.sun.java.util.jar.pack.unpack.remove.packfile=true
com.sun.java.util.jar.pack.verbose=1
com.sun.java.util.jar.pack.unpack.modification.time=(not set)
unpacker completed with status=0
A total of 1434914 bytes were read in 0 segment(s).
A total of 3535236 file content bytes were written.
A total of 773 files (of which 684 are classes) were written to output.

Unpacking from \Sun\Java\jdk1.6.0_91\jre\lib\javaws.pack to \Sun\Java\jdk1.6.0_91\jre\lib\javaws.jar
com.sun.java.util.jar.pack.unpack.log.file=-
unpack.deflate.hint=(not set)
com.sun.java.util.jar.pack.unpack.remove.packfile=true
com.sun.java.util.jar.pack.verbose=1
com.sun.java.util.jar.pack.unpack.modification.time=(not set)
unpacker completed with status=0
A total of 222452 bytes were read in 0 segment(s).
A total of 869362 file content bytes were written.
A total of 384 files (of which 369 are classes) were written to output.

Unpacking from \Sun\Java\jdk1.6.0_91\jre\lib\jsse.pack to \Sun\Java\jdk1.6.0_91\jre\lib\jsse
.jar
com.sun.java.util.jar.pack.unpack.log.file=-
unpack.deflate.hint=(not set)
com.sun.java.util.jar.pack.unpack.remove.packfile=true
com.sun.java.util.jar.pack.verbose=1
com.sun.java.util.jar.pack.unpack.modification.time=(not set)
unpacker completed with status=0
A total of 162986 bytes were read in 0 segment(s).
A total of 605399 file content bytes were written.
A total of 244 files (of which 218 are classes) were written to output.

Unpacking from \Sun\Java\jdk1.6.0_91\jre\lib\plugin.pack to \Sun\Java\jdk1.6.0_91\jre\lib\plugin.jar
com.sun.java.util.jar.pack.unpack.log.file=-
unpack.deflate.hint=(not set)
com.sun.java.util.jar.pack.unpack.remove.packfile=true
com.sun.java.util.jar.pack.verbose=1
com.sun.java.util.jar.pack.unpack.modification.time=(not set)
unpacker completed with status=0
A total of 544733 bytes were read in 0 segment(s).
A total of 1854564 file content bytes were written.
A total of 829 files (of which 746 are classes) were written to output.

Unpacking from \Sun\Java\jdk1.6.0_91\jre\lib\rt.pack to \Sun\Java\jdk1.6.0_91\jre\lib\rt.jar

com.sun.java.util.jar.pack.unpack.log.file=-
unpack.deflate.hint=(not set)
com.sun.java.util.jar.pack.unpack.remove.packfile=true
com.sun.java.util.jar.pack.verbose=1
com.sun.java.util.jar.pack.unpack.modification.time=(not set)
unpacker completed with status=0
A total of 13230775 bytes were read in 0 segment(s).
A total of 47458570 file content bytes were written.
A total of 17238 files (of which 17230 are classes) were written to output.

Unpacking from \Sun\Java\jdk1.6.0_91\jre\lib\ext\localedata.pack to \Sun\Java\jdk1.6.0_91\jre\lib\ext\localedata.jar
com.sun.java.util.jar.pack.unpack.log.file=-
unpack.deflate.hint=(not set)
com.sun.java.util.jar.pack.unpack.remove.packfile=true
com.sun.java.util.jar.pack.verbose=1
com.sun.java.util.jar.pack.unpack.modification.time=(not set)
unpacker completed with status=0
A total of 657199 bytes were read in 0 segment(s).
A total of 830667 file content bytes were written.
A total of 109 files (of which 99 are classes) were written to output.

・jre\bin に移動して java -version が動くのを確認

\Sun\Java\jdk1.6.0_91\jre\bin>java -version
java version "1.6.0_91"
Java(TM) SE Runtime Environment (build 1.6.0_91-b13)
Java HotSpot(TM) Client VM (build 20.91-b07, mixed mode)

これで、特定アプリの指定する Java 実行ファイルをここに指定すれば Java 6 をインストールせずに
Java 6 が利用できるようになります ・ω・ やったね

※展開フォルダの名前にスペースがあるとうまくいかないことがあります。その場合はフォルダを変えて実行して、終わったら元のフォルダに戻すという方法を使います。

おすすめ

3件のフィードバック

  1. REX より:

    java6 u131 x86見つからないですね。
    java6 u131 x64は見つけたんですが拾えましたか?

  2. . より:

    URLを書き換えたら、ダウンロードリストにないx64版が落とせました。どういうこと・・・

  3. REX より:

    やっと、Java 6u131のJREとJDK拾えた。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です