Javaインターフェイス

本インターフェイスは、AH Formatter V7.2 をJavaから利用するインターフェイスを提供します。 Java VM について を参照してください。

JavaインターフェイスはJNI(JavaNativeInterface)を使用して作られています。

ライブラリファイル

以下のライブラリファイルが [Install directory] または [Install directory]/​lib に含まれています。

ライブラリファイル内容場所
XfoJavaCtl.jarJavaアーカイバ[Install directory]/​lib
XfoJavaCtl72.dllWindows用 Javaインターフェイス[Install directory]
libXfoJavaCtl72.soLinux用 Javaインターフェイス[Install directory]/​lib
libXfoJavaCtl72.jnilibMacintosh用 Javaインターフェイス[Install directory]/​lib

Javaインターフェイスを実行するには、Javaを実行するディレクトリと[Install directory]/​lib/​XfoJavaCtl.jar が環境変数 CLASSPATH に含まれていなければなりません。 また、JNI(JavaNativeInterface)を使用していることからWindows版では [Install directory] が環境変数 PATH に含まれていなければなりません。非Windowsの環境では[Install directory]/​libが Linux版では環境変数 LD_LIBRARY_PATH に 、Macintosh 64ビット版では java.library.path に 含まれていなければなりません。 必要な環境変数については、環境変数を参照してください。

Windows版の場合。

> set CLASSPATH=[Install directory]/lib/XfoJavaCtl.jar;%CLASSPATH%
> set PATH=[Install directory];%PATH%

Linux版の場合。

$ CLASSPATH=[Install directory]/lib/XfoJavaCtl.jar:${CLASSPATH}
$ export CLASSPATH
$ LD_LIBRARY_PATH=[Install directory]/lib:${LD_LIBRARY_PATH}
$ export LD_LIBRARY_PATH

Java VM について

AH Formatter V7.2 の Javaインターフェイスは、Windows版では J2SE5.0、Linux 64ビット版では Java SE 8、Amazon Linux 2 Graviton2版では OpenJDK 8、Macintosh 64ビット版では Java SE 6 を使ってビルドされています。

アプリケーションサーバでの使用

Tomcatなどのアプリケーションサーバにおいて本インターフェイスを使用する場合、XfoJavaCtl.jarをウェブアプリケーションのWEB-INF/libに置かないようにしてください。
JavaVMの仕様によりJNIのネイティブライブラリは複数のクラスローダから読み込めないようになっているため、各ウェブアプリケーションディレクトリにXfoJavaCtl.jarを置くと複数のウェブアプリケーションから使用することができなくなります。これを防ぐにはシステムクラスローダなどロードが一度だけ行われるクラスローダで読み込ませるように設定してください。

サンプルプログラムの実行

[Install directory]/​samples/​java は簡単なサンプルプログラムをいくつか含んでいます。

これらのサンプルプログラムを実行するには、次のようにします。このとき、[Install directory]/​samples/​java を CLASSPATH に含めておきます。

> cd [Install directory]/samples/java
> javac sample.java
> java sample sample.fo sample.pdf

なお、Macintosh 64ビット版では、以下のように java コマンドに対して java.library.path の設定を追加する必要があります。

> java -Djava.library.path="[Install directory]/lib" sample sample.fo sample.pdf

API仕様

API仕様は、Javadocによるドキュメントを参照してください。