Open n-ando opened 3 years ago
jar file loadpath issue https://openrtm.org/openrtm/ja/content/openrtm-users-02802-java%E7%89%88%E3%81%AErtcd%E3%81%AE%E5%8B%95%E4%BD%9C%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6
カレントディレクトリでrtcdを起動する場合, ディレクトリ内に,
manager.modules.preloadに設定されたものが jarファイルの場合に,RTCのクラス名がデフォルトパッケージにある,という前提を元に, jarをURLClassLoaderで開き,クラス名からClass型オブジェクトを生成
Javaで jarファイル内の特定のクラスをロードするおよびエントリーポイント関数を呼び出す場合は以下の条件・情報が必要
例えば以下のように指定できるようにする。
# ↓この下にjarやclassがいろいろ入っている manager.modules.load_path: /usr/share/openrtm-2.0/components/java, /home/work, /home/openrtm/katkin_ws # ConsoleIn ConsoleOut.class→ classのRTC指定 # jarの指定→以下のようにjarファイルを指定技ごカッコ()内でパッケージ名・クラス名・初期化関数名を指定 # → この方法は他の言語との互換性も一応ある(他言語はカッコ内は初期化関数のみ) # <module_name>(.<extention>) (package_names..class_name::init_func_name), ... manager.modules.preload: ConsoleIn, ConsoleOut.class, SeqIn.jar (RTMExxamples.SeqIO.SequenceIn:myRegisterModule)
jar file loadpath issue https://openrtm.org/openrtm/ja/content/openrtm-users-02802-java%E7%89%88%E3%81%AErtcd%E3%81%AE%E5%8B%95%E4%BD%9C%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6
Identify the Bug
カレントディレクトリでrtcdを起動する場合, ディレクトリ内に,
Description of the Change
manager.modules.preloadに設定されたものが jarファイルの場合に,RTCのクラス名がデフォルトパッケージにある,という前提を元に, jarをURLClassLoaderで開き,クラス名からClass型オブジェクトを生成
前提条件
Javaで jarファイル内の特定のクラスをロードするおよびエントリーポイント関数を呼び出す場合は以下の条件・情報が必要
rtc.conf での指定方法について検討
例えば以下のように指定できるようにする。
Verification