バグ #3092
完了
Windows用64bit版インストーラで構築した環境でstart-orbd.vbsを実行するとエラーとなる
n.kawauchi さんが約10年前に追加.
9年以上前に更新.
説明
スタートメニューから「Start Java Naming Service」を実行すると、下記エラーとなる。
HKLM\SOFTWARE\Wow6432Node\JavaSoft\Java Development Kit\CurrentVersionのルートが無効です
確認に使用したのはリリース予定のインストーラ:OpenRTM-aist-Java_1.1.0-RELEASE_x86_64.msi
- 期日 を 2015/02/05 にセット
- ステータス を 新規 から 解決 に変更
- 進捗率 を 0 から 100 に変更
エラーの原因は下記のレジストリキーのセット処理の判断が違うため。
strMode = objShell.Environment("Process").Item("PROCESSOR_ARCHITECTURE")
'JDKのレジストリキーをセット
If UCase(strMode) = "X86" Then ←★ここ
regJDKkey = "HKLM\SOFTWARE\JavaSoft\Java Development Kit"
Else
regJDKkey = "HKLM\SOFTWARE\Wow6432Node\JavaSoft\Java Development Kit"
End If
上記のif文の判断では、64bit OSの場合は必ずElseに入ってしまう。
テスト環境のWindows7は64bit OSなので、32bit OSとしてWindows8.1 32bit評価版をインストールして環境を構築し、動作を確認した結果が以下の通り。
- Windows8.1 32bit OS上
- OpenRTM-aist-Java_1.1.0-RELEASE_x86.msi(32bit版)インストール。JDK7も32bit版がインストールされている。
- ネーム・サービス 起動OK!
- Javaがセットされているレジストリの場所は、HKLM\SOFTWARE\JavaSoft\Java Development Kit
- Windows7 64bit OS上
- OpenRTM-aist-Java_1.1.0-RELEASE_x86.msi(32bit版)インストール。JDK7も32bit版がインストールされている。
- ネーム・サービス 起動OK!
- Javaがセットされているレジストリの場所は、HKLM\SOFTWARE\Wow6432Node\JavaSoft\Java Development Kit
- Windows7 64bit OS上
- OpenRTM-aist-Java_1.1.0-RELEASE_x86_64.msi(64bit版)インストール。JDK7も64bit版がインストールされている。
- ネーム・サービス 起動できない!
- Javaがセットされているレジストリの場所は、HKLM\SOFTWARE\JavaSoft\Java Development Kit
以上の結果から、64bit OS上の場合はJavaのタイプ(32bit or 64bit)に合わせてレジストリキーをセットするように修正した。
(この修正と合わせて、文字コードをutf-8に変更した)
r726
'JDKのレジストリキーをセット
regJDKkey = "HKLM\SOFTWARE\JavaSoft\Java Development Kit"
If not (UCase(strMode) = "X86") Then
'64bit OS
On Error Resume Next
regJDKkey = regJDKkey + "\"
If IsNull(objShell.RegRead(regJDKkey)) Then
'キーが存在しない
WScript.Echo "キーが存在しない"
'64bitのOS上に32bit版のJavaがインストールされている
regJDKkey = "HKLM\SOFTWARE\Wow6432Node\JavaSoft\Java Development Kit"
Else
WScript.Echo "キーが存在する"
End If
End If
※ここではデバッグ用にEcho文を入れている
修正後の動作確認
- Windows8.1 32bit OS上
- OpenRTM-aist Java, JDK7 ともに32bit版をインストール
- ネーム・サービス 起動OK!
- スクリプトのEchoメッセージは表示されない・・・OK動作
- Windows7 64bit OS上
- OpenRTM-aist Java, JDK7 ともに32bit版をインストール
- ネーム・サービス 起動OK!
- スクリプトのEchoメッセージ「キーが存在しない」・・・OK動作
- Windows7 64bit OS上
- OpenRTM-aist Java, JDK7 ともに64bit版をインストール
- ネーム・サービス 起動OK!
- スクリプトのEchoメッセージ「キーが存在する」・・・OK動作
他の形式にエクスポート: Atom
PDF