Windows で JDK のインストール先を取得
Windows にJDK を入れた時のインスートル先のディレクトリというのは、バージョンによって変わる。これを機械的に取得したい。
環境変数の類は設定されない(公式のマニュアルに、手動で設定する方法が書かれてるくらいだし)ようだが、レジストリを見ればパスを取得できる。
Stack Overflow の質問にはreg コマンドを使った回答が付いているが、Windows の場合こういうのはバッチファイルで書くよりもWSH を使った方が文字列処理等がすっきりするだろう。
というわけで書いてみた。
var WshShell = WScript.CreateObject("WScript.Shell");var JDKKey = "HKLM\\SOFTWARE\\JavaSoft\\Java Development Kit\\";var CurrentVersion = WshShell.RegRead(JDKKey + "CurrentVersion");var JavaHome = WshShell.RegRead(JDKKey + CurrentVersion + "\\JavaHome");var JDKBin = JavaHome + "\\bin";WScript.Echo(JDKBin);このファイルを例えばshowjdkpath.js という名前で保存して、CScript /nologo showjdkpath.js と実行すれば、標準出力に javac の場所が出てくる。

