ステップ 5 - Java™言語で関数/変数を実装する
(プラグイン開発)

ここでは、RINPn の機能を強化するために、Java言語でプラグインを作ってみましょう!

- 目次 -

ライブラリ スクリプトによる方法以外にも、Java言語を用いて、新しい組み込み関数/変数を実装する事もできます。 RINPn および Vnano では、組み込み関数/変数を提供する事を目的とした、 Java® 言語で記述されたプログラムの事を「 プラグイン 」と呼びます。

プラグインによる関数/変数定義は、 ステップ 4 のようにライブラリ スクリプトで関数や変数を定義する方法と比べて、 Java® 言語の高い機能性を利用できる事が大きなメリットになるかもしれません。

半面、実装したコードをコンパイルする際には、 別途 Java® 言語の開発環境 (JDK) が必要です。 ここでは、ご使用のPCに既に何らかのJDKが導入されていて、javac コマンドが使用可能になっている事を前提として解説します。 JDK の導入方法については、例えば「 OpenJDK   インストール   (ここにOSの名前) 」などでWeb検索してみてください。

プラグインの使用方法

RINPn では、プラグインは「 plugin 」フォルダ内に置きます。 このフォルダ内には、標準で、以下のようなプラグインのサンプル「 ExamplePlugin.java 」が同梱されています:

(plugin フォルダ内の ExamplePlugin.java をテキストエディタで開いた内容)

public class ExamplePlugin {

    public double pivar = 1.0;

    public double pifun(double arg) {
        return arg * 2.0;
    }
}

このプラグインは標準でコンパイルされており、読み込まれるよう設定されています(それぞれの方法はすぐ後で説明します)。

上のプラグインで定義しているフィールド「 pivar 」やメソッド「 pifun(arg) 」は、 例えば ステップ 1 で扱った、電卓に入力する計算式の中で、 以下のように関数/変数として使用できます:

INPUT:
1 + pivar

OUTPUT:
2

INPUT:
pifun(2)

OUTPUT:
4

同様に、ステップ 2 でコマンドライン引数に指定している計算式の中や、 ステップ 3 でのスクリプト内でも使用できます。

プラグインのコンパイル方法

プラグインのコード内容を編集した場合には、コンパイルする必要があります。 以下のように、普通の Java® 言語のプログラムと同様にコンパイルできます:

cd RINPnのpluginフォルダの場所(パス)
javac ExamplePlugin.vnano

なお、「 plugin 」フォルダ内のさらに org/vcssl/connect フォルダ内には、 Vnano のプラグイン開発に有用なインターフェース類 ( XFCI1 や XNCI1 など ) が、 標準で配置されています。 そのため、必要に応じて、それらのインターフェース類をプラグインから import して使用できます (詳細は Vnanoのドキュメント内の「 プラグインの開発 」をご参照ください)。 その場合でも、特に何かを用意したり、コンパイラにオプション等を指定したりする必要はありません。

新しいプラグインの追加方法(読み込み登録)

新しいプラグインを作成した際は、まず、そのファイルを RINPn の「 plugin 」フォルダ内に置いてコンパイルしてください。 子孫階層のフォルダに置きたい場合は、それに整合する階層のパッケージをプラグインのコード先頭で宣言して、 普通のパッケージ所属クラスと同様の方法でコンパイルしてください。

続いて、そのプラグインのクラスファイルのパスを、「 plugin 」フォルダ直下にあるテキストファイル「 VnanoPluginList.txt 」内に記載(追記)してください。 そうすると、そのプラグインが読み込まれるようになります。

Vnano 標準プラグイン

「 plugin 」フォルダ内のさらに org/vcssl/nano/plugin フォルダ内には、 基本的な機能群(数学関数やユーティリティ関数など)を提供する「 Vnano 標準プラグイン 」が配置されており、 標準で読み込まれるよう設定されています。

標準プラグインによって提供される機能の一覧や詳細仕様については、 Vnano 公式サイト内の、標準プラグインの仕様書ページ をご参照ください。 なお、RINPn において特によく使いそうな関数や変数については、 本文書の「 主な組み込み関数/変数 」のページでもリストアップし、簡略化した機能説明文を掲載しています。

- 本文書内の商標などについて -