Nanashi-softプログラマ専用BD-J


◇BD-J-BDJOファイル生成方法-

○BDJOファイルとは?

BD-Jの起動情報が記述されているファイルです

AVCHD
|-BDMV
  |-BDJO
   |-00000.bdjo

バイナリファイルになっており、バイナリエディタで開くと、jarファイル名や起動クラスなどが記述されている事がわかります
プログラムを動かす上で、とても重要な情報が記述されたファイルです

○生成方法

HD cookbookの中にある bdjo.jarを使用して生成可能です
各種情報を記述した bdjo.xml(ファイル名は自由)を作成して、それを通します

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<bdjo>
    <appCacheInfo>
        <entries>
            <language>*.*</language>
            <name>00000</name>
            <type>1</type>
        </entries>
    </appCacheInfo>
    <applicationManagementTable>
        <applications>
            <applicationDescriptor>
                <baseDirectory>00000</baseDirectory>
                <binding>TITLE_BOUND_DISC_BOUND</binding>
                <classpathExtension>/00000</classpathExtension>
                <iconFlags>0x0</iconFlags>
                <iconLocator></iconLocator>
                <initialClassName>org.homebrew.MyXlet</initialClassName>
                <priority>1</priority>
                <profiles>
                    <majorVersion>1</majorVersion>
                    <microVersion>0</microVersion>
                    <minorVersion>0</minorVersion>
                    <profile>1</profile>
                </profiles>
                <visibility>V_11</visibility>
            </applicationDescriptor>
            <applicationId>0x4000</applicationId>
            <controlCode>0x1</controlCode>
            <organizationId>0x56789abc</organizationId>
            <type>0x1</type>
        </applications>
    </applicationManagementTable>
    <fileAccessInfo>.</fileAccessInfo>
    <keyInterestTable>0xffe00000</keyInterestTable>
    <tableOfAccessiblePlayLists>
        <accessToAllFlag>true</accessToAllFlag>
    </tableOfAccessiblePlayLists>
    <terminalInfo>
        <defaultFontFile>00000</defaultFontFile>
        <initialHaviConfig>HD_1920_1080</initialHaviConfig>
        <menuCallMask>false</menuCallMask>
        <titleSearchMask>false</titleSearchMask>
    </terminalInfo>
    <version>V_0200</version>
</bdjo>

作成した xmlファイルに、bdjo.jarを実行して、00000.bdjoを生成します
java -cp bdjo.jar:tools.jar -jar bdjo.jar bdjo.xml 00000.bdjo

できた 00000.bdjoファイルを、BDJOフォルダに入れれば、その定義でプログラムが起動するようになります

○起動クラスの変更

initialClassNameタグを変更する事で、好きなクラスから起動する事ができます
例えば、sampleクラスから起動したい場合は、
<initialClassName>sample</initialClassName>
と記述すれば良いです

Javaに慣れていない人用に書いておきますが、
sampleクラスで起動すると言う事は、ファイル名も sample.javaにしなければなりません

また、「.」区切りはフォルダ名を意味します
<initialClassName>org.sample</initialClassName>
と書いたなら、root/org/sample.javaの位置にクラスファイルがある事を意味します

この辺りの意味がわからない人は、Javaについて説明されているサイトを一度見た方が良いでしょう

○クラスパスの追加

以下のように jarファイルを2つに分けたとします

AVCHD
|-BDMV
  |-JAR
   |-00000.jar
   |-00001.jar

どうやって隣の 00001.jarファイルをオープンすればいいの? と考えるとハマります
なぜなら、考え方そのものが間違っているからです

Javaの場合、他の jarファイルにアクセスするには、パスを通す作業を行います
00000.jarと 00001.jarにパスを通しておけば、まるで1つのファイルのようにアクセス可能になります

クラスパスの定義は classpathExtensionタグにて行います
<classpathExtension>/00000;/00001</classpathExtension>
と、パスを通したい jarファイル分だけ「;」区切りで追加します
※ここのファイル名には数字5ケタと言う制限があります

○情報

・applicationIdタグや organizationIdタグはデータ保存時に重要なタグなので、不用意に変更しない
・クラスパスを追加した jarファイルは、同じフォルダ構造で無ければリソースファイルにアクセスできない


TOPプログラマ専用BD-J