jPassString クラスには、クラスのインスタンスを生成して ネイティブ・メソッドを呼び出す main メソッドも含まれ ています。main メソッドは jPassString のインスタンスを生成し、pliShowString() ネイティブ・メソッドを呼び出します。
このサンプル・プログラムは、ストリングの入力をユーザーに促し、コマンド行からその値を読み込みます。この作業は、図 29 に 示す try/catch ステートメント内で行われます。
// Read a string, call PL/I, display new string upon return
import java.io.*;
public class jPassString{
/* Field to hold Java string */
String myString;
/* Load the PL/I native library */
static {
System.loadLibrary("passString");
}
/* Declare the PL/I native method */
public native void pliShowString();
/* Main Java class */
public static void main(String[] arg) {
System.out.println(" ");
/* Instantiate Java class and initilize string */
jPassString myPassString = new jPassString();
myPassString.myString = " ";
/* Prompt user for a string */
try {
BufferedReader in = new BufferedReader(
new InputStreamReader(System.in));
/* Process until 'quit' received */
while (!myPassString.myString.equalsIgnoreCase("quit")) {
System.out.println(
"From Java: Enter a string or 'quit' to quit.");
System.out.print("Java Prompt > ");
/* Get string from command line */
myPassString.myString = in.readLine();
if (!myPassString.myString.equalsIgnoreCase("quit"))
{
/* Call PL/I native method */
myPassString.pliShowString();
/* Return from PL/I and display new string */
System.out.println(" ");
System.out.println(
"From Java: String set by PL/I is: "
+ myPassString.myString );
}
}
} catch (IOException e) {
}
}
}