OpenRTM / OpenRTM-aist-Java

OpenRTM-aist: RT-Middleware and OMG RTC implementation in Java implemented by AIST
Other
1 stars 5 forks source link

独自データ型のデータポートを持つRTCのmsiをCPackで生成しインストールした際、起動できない #57

Closed n-kawauchi closed 4 years ago

n-kawauchi commented 5 years ago

Describe the bug 独自データ型のデータポートを持つRTCを作成し、antによるビルドは通ります。 RTC.xml.txt test.idl.txt

この後、CPackによりmsiを生成・実行までは問題ありませんが、インストールされたRTCを起動できません。RTCの起動は生成されたbatファイルを実行しています。

>java testOriginalPortjavaComp -f rtc.conf
Exception in thread "main" java.lang.NoClassDefFoundError: Sample/SampleDataType

Screenshots or Logs msiを実行して下記ファイルがインストールされています。

C:\Program Files\OpenRTM-aist\1.2.1\Components\Java\Category\testOriginalPortjava
    rtc.conf
    RTC.xml
    testOriginalPortjava.bat
    testOriginalPortjava.class
    testOriginalPortjava.conf
    testOriginalPortjavaComp.class
    testOriginalPortjavaImpl.class

Environment

Additional context Javaのことよく分かっていないので、基本的な知識不足でしたら申し訳ございません。

n-kawauchi commented 5 years ago

無事、起動できました! Sample/SampleDataTypeへのクラスパスが通っていないとヒントを頂きました。 確認したところ、bin下にSampleDataTypeに関するclassファイルが生成されていましたが、これがmsiパッケージに含まれていなかったことが原因でした。

インストール先のファイル構成を下記としたところ、無事にスタートメニューから起動できました。

C:\Program Files\OpenRTM-aist\1.2.1\Components\Java\Category\testOriginalPortjava
│  rtc.conf
│  RTC.xml
│  testOriginalPortjava.bat
│  testOriginalPortjava.class
│  testOriginalPortjava.conf
│  testOriginalPortjavaComp.class
│  testOriginalPortjavaImpl.class
│
└─Sample
        SampleDataType.class
        SampleDataTypeHelper.class
        SampleDataTypeHolder.class

このために必要な修正はCMakeLists.txtのテンプレートですので、RTCBuilderの修正となります。 この修正Issueはこちらで作成します。