home/pluginにディレクトリを掘り、その中にplugin.classを置くか若しくは決められたManifest情報を持っているjarファイルを置くと、
そのプラグインは起動後に動的にロードされます。
プラグインの実体はJavaのクラスとなっており、決められたメソッドを実装している必要があります。
home
+-plugin
+-macotakara
+-alias.txt
+-siteinfo.txt
+-univsensor.jar
プラグインを用意するには二通りの方法があり、一つはJavaのclassファイルを裸で置く方法、
もう一つは特定のManifest情報を持ったjarファイルを置く方法です。
ただし裸の.classファイルを置く方法は過去互換性の為だけに残されていて、jarの使用を強く推薦します。
裸のクラスファイルを用いた場合はただ一つのクラスファイルしか使用することが出来ず、
ファイルが別れてしまうので内部クラスすら使用することが出来ません。
・裸の.classファイルを置く場合
デフォルトではロードされるクラスファイルはplugin.classですが、
alias.txtというファイルを用意して次のように指定すれば
読み込むクラスファイルを指定することが出来ます。
plugin,UniversalHLSensor.class
この例ではplugin.classの代わりにUniversalHLSensor.classがロードされます。
・jarファイルを置く場合
デフォルトでロードされるjarファイルはplugin.jarですが、
同じようにalias.txtで指定することが出来ます。
plugin,univsensor.jar
jarをプラグインとして認識させるには、そのjarファイルが「Plugin-Main-Class」というManifest情報を持っていなければなりません。
Plugin-Main-Classで指定されたクラスがプラグインとして自動的にロードされます。
Manifest情報を追加するにはまず適当なテキストエディタで次のような一行が書かれたテキストファイルを作成し、
jarに入れるクラスファイル(コンパイル済み)があるディレクトリに入れて下さい。
ファイル名は適当で構いませんが、ここでは「manifest」とします。
Plugin-Main-Class: UniversalHLSensor
次にmanifestファイルを置いたディレクトリへ移動し、jarツールを使って次のようにjarファイルを作成します。
% jar cvfm univsensor.jar manifest UniversalHLSensor.class
これでjarファイルは完成です。
alias.txtに「plugin」が指定されていなかった場合、偽林檎は最初にplugin.jarが存在するかどうかを調べ、
見つからなければplugin.classを探し、それも無ければそのプラグインは諦めます。
プラグインでJNIを使う方法は下記の通り。
・ライブラリファイルはbundle形式でビルドする。→方法
・ファイル名をlib(ライブラリ名).jnilibとする。
・ライブラリファイルをjarファイルと同じディレクトリに置く。
これでSystem.loadLibrary("ライブラリ名");とすればJNIライブラリが読み込まれる。
タイプ指定文字列 | 種類 |
hlsensor | ヘッドラインセンサ |
shiori | SHIORI 追加モジュール |
makoto | MAKOTO 追加モジュール |