操作
バグ #3092
完了Windows用64bit版インストーラで構築した環境でstart-orbd.vbsを実行するとエラーとなる
開始日:
2015/02/05
期日:
2015/02/05
進捗率:
100%
予定工数:
説明
スタートメニューから「Start Java Naming Service」を実行すると、下記エラーとなる。
HKLM\SOFTWARE\Wow6432Node\JavaSoft\Java Development Kit\CurrentVersionのルートが無効です
確認に使用したのはリリース予定のインストーラ:OpenRTM-aist-Java_1.1.0-RELEASE_x86_64.msi
n.kawauchi さんが10年以上前に更新
- 期日 を 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動作
 
 
操作