Android SDK Manager が起動しない時の対策

#検索サイトなどから来た方向け

過去に書いた本文とは別のアプローチをコメントに頂いてます。
環境変数をセットすることで意図した動きに制御することができますので、そちらがよりベターな解決策となると思います(情報いただき感謝です!)。
Javaまわりでは結構(Android関連にかぎらず昔から)パスまわりは鬼門ですので、Java導入時は面倒がらずにこの辺の設定しておくと吉ですね。

(以下本文)
SDK Manager.exe や AVD Manager.exe を起動しようとしても、一瞬DOS窓のようなものが出てきて直ぐ消え、起動してくれない、との相談があった。

色々調べた所、Android-sdkの中の tools\lib にある find_java.exe が、本来使いたいJava.exeではなく、Windows\system32 に入っている Java.exe を返しているのが原因っぽい。
試しに Windows\system32 にある Java.exe を Java.exe.NOUSE などにリネームしたら起動できた。
おそらくJava.exeを探すときの場所のリストの優先度の高いところに Windows\system32 が入っていて、そっちで見つけたJava.exeを(別途自分でインストールしたJavaよりも)優先的に使用するような実装になっている気がする。

ただ、system32 にある Java.exe そのものを無効化して支障がないかどうかの確証がないので、こちらにある手順で find_java.bat 自体を変更し、find_java.exe を使わずに任意の場所のJava.exeを明示的に指定して解決するのがベターかと。

自分はEclipseのメニューや Android.bat からSDKマネージャを起動できるので、そちらを使っていて、上記の find_java.bat の変更は行なっていない。


#追記
この手のトラブルの解決方法として、具体的な手順だけを書いているサイトが多いのが気になる。
投稿者自体は理由が分かっていていちいち説明するのが面倒なので、閲覧者が取り急ぎ解決できるよう手順だけを書いているのだと思う。
ただ、「なぜ」「どうして」が抜けているので、それだけを見て解決した人は次に似たようなトラブルが起きた時に自力で解決できない気がする。今回の場合はJava.exeの場所の検出に問題があるわけだけど、SDKJavaのインストールパスが変わったり、該当するbatファイルが変わったりしたら混乱しそう。

っつーか、こういう初歩的なトラブルはSDK側(find_java.exe)がキチンと解決スべきだとは思う。頼むよgoogle

とりあえず、愚痴は消しておきますw