rtcd_javaについて¶
ManagerのRTC生成機能において、OpenRTM-aist c++版だけがインストールされている環境でも、Java版のManagerがスレーブとして起動できる必要があります。
通常は、msi パッケージでインストールするとC++、python、java版の全てがインストールされますが、カスタムインストールでは、言語選択して単体のインストールが可能です。
rtcd_javaは、 OpenRTM-aist Java(OpenRTM-aist-x.x.x.jar)がなくても、Java版Managerがスレーブとして動作するものです。
また、rtcd_javaは、オプションまたはコンフィグファイルの指定で、マスターManagerとしての動作も可能です。
JVMが見つからないために起動していないようです。
JSmoothの設定ファイル(rtcd.jsmooth.in)で<JVMSearchPath>タグによりJVMのサーチpathを設定います。以下抜粋。
<?xml version="1.0" encoding="ISO-8859-1"?>
<jsmoothproject>
<JVMSearchPath>registry</JVMSearchPath>
<JVMSearchPath>javahome</JVMSearchPath>
<JVMSearchPath>jrepath</JVMSearchPath>
<JVMSearchPath>jdkpath</JVMSearchPath>
<JVMSearchPath>exepath</JVMSearchPath>
<JVMSearchPath>jview</JVMSearchPath>
レジスト→JAVA_HOME→JRE_PATH→JDK_PATH→PATHの順でサーチしているようですが、環境を確認すると JAVA_HOME、JRE_PATH、JDK_PATHは、設定されていませんでした。テスト的にJAVA_HOMEを設定したらrtcd_javaは動作しました。
>set JAVA_HOME=C:\Program Files\Java\jre1.8.0_144
>rtcd_java -d
>set RTCTREE_NAMESERVERS=localhost
>rtls localhost/.host_cxt -l
- - - - - manager.mgr
実行パスは以下の通りです。(抜粋)
>echo %PATH%
C:\ProgramData\Oracle\Java\javapath;C:\Program Files (x86)\Parallels\Parallels Tools\Applications;C:\Windows\system32;・・・
javaの実行パスは C:\ProgramData\Oracle\Java\javapath; となっています。これだと実行しないようです。( bin ディレクトの配下に java.exe がある構成を想定しているのだと思います。)
対応としては、以下のようなものが考えられます。
- jre と OpenRTM-aist Java版 を配布する
この対応は1.2.0の対応案です。(確認が必要です。)
カススタムインストールでも jre と OpenRTM-aist Java版で必要なjarファイルをインストールする方法。(examplesはインストールしない。)
これにより、rtcd_javaをexe化する必要はなくなりますが、jarファイル分のディスク容量が消費されます。
Start RTC daemonの起動¶
Start RTC daemonは、以下の順で動作します。
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\OpenRTM-aist 1.1.2\Java\Tools\Start RTC daemon
↓
"C:\Program Files\OpenRTM-aist\1.1.2\bin\rtcd_java.bat" -d
↓
C:\Program Files\OpenRTM-aist\1.1.2\bin\rtcd_java.exe
- rtcd_java.bat
@rtcd_java.exe -d
rtcd.jarをexeファイル化(rtcd_java.exe)した理由¶
rtcd_java.bat(batファイル)からexeファイル(rtcd_java.exe)を呼び出すのではなく、以下のようにjavaを使用してrtcdを呼び出せば、rtcd_java.exeなしにManagerを実行することは可能ですが、この場合、OpenrRTM-aistを含むいくつかのJarファイルが必要になります。
set CLASSPATH=.;./rtcd.jar;./OpenRTM-aist-1.2.0.jar;./commons-cli-1.1.jar
java rtcd.rtcd -d -f ./rtcd_java.conf
カスタムインストールでjava版がインストールされなかった場合は、これらのjarファイルはインストールされませんので、Managerは実行できなくなります。
そのため、必要なjarのパッケージが一つになったexeファイル(rtcd_java.exe)が必要になります。