ActiveX から 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 オブジェクトをグローバルに保管し、 そのオブジェクトを引き続き再使用することです。
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)