ActiveX クライアント・プログラミング: Java 仮想マシンの初期化のヒント
ActiveX to Enterprise Java™ Beans (EJB) ブリッジにより、Java 仮想マシン (JVM) コードを初期化します。 ActiveX クライアント・プログラム (Visual Basic、VBScript、または ASP) が Java クラスまたはオブジェクトにアクセスするためにプログラムで 最初に実行する必要があるステップは、そのプロセス内に Java 仮想マシン (JVM) コードを作成することです。
JVM コードを作成する場合、ActiveX プログラムは XJB.JClassFactory オブジェクトの XJBInit() メソッドを呼び出します。 XJB.JClassFactory オブジェクトが作成されて、 XJBInit() メソッドが呼び出されると、JVM が初期化されていつでも使用できるようになります。
初期化中に XJB.JClassFactory が Java ランタイム記述言語 (DLL) を見つけられるようにするには、Java ランタイム環境 (JRE) bin および bin¥classic ディレクトリーが、システム・パス環境変数内に存在していなければなりません。
XJBInit() メソッドが受け入れられるパラメーターは、1 つ (ストリングの配列) だけです。 配列内の各ストリングは、コマンド行引数を表しています。これは、Java プログラムの場合、通常 Java.exe コマンド行上に指定します。このストリング・インターフェースは、 クラスパス、スタック・サイズ、ヒープ・サイズ、およびデバッグの設定値を設定するために使用されます。 これらのパラメーターのリストは、コマンド行から java -? と入力することによって取得できます。
パラメーターの設定に誤りがあると、0x6002 "Failed to initialize VM" というエラー・メッセージが表示されます。
Java Native Interface (JNI) の現行の制約のため、 JVM コードがロードされた後は、JVM コードをアンロードまたは再度初期化することはできません。 したがって、いったん XJBInit() メソッドが呼び出された後は、 アクセスのために JClassFactory オブジェクトの複製を作成する場合を除いて、 以降の呼び出しは無効になります。 最善の方法は、XJB.JClassFactory オブジェクトをグローバルに保管し、 そのオブジェクトを引き続き再使用することです。
- 次の Visual Basic 抽出は、JVM コードの初期化の例を示しています。
Dim oXJB as Object set oXJB = CreateObject("XJB.JClassFactory") Dim astrJavaInitProps(0) as String astrJavaInitProps(0) = _ "-Djava.class.path=.;c:¥myjavaclasses;c:¥myjars¥myjar.jar" oXJB.XJBInit(astrJavaInitProps)