Sugerencias de inicialización de la máquina virtual Java para programación de clientes ActiveX
Inicialice el código de la máquina virtual Java™ (JMV) con el puente de ActiveX a EJB (Enterprise Java Beans). Para que un programa cliente ActiveX (Visual Basic, VBScript o ASP) pueda acceder a las clases u objetos Java, en primer lugar el programa debe crear el código JVM (máquina virtual Java) dentro del proceso.
Para crear el código JVM, el programa ActiveX llama al método XJBInit() del objeto XJB.JClassFactory. Cuando se crea un objeto XJB.JClassFactory y se llama al método XJBInit(), se inicializará la JVM y estará preparada para ser utilizada.
Para habilitar XJB.JClassFactory de modo que busque el lenguaje de definición de descripciones (DLL) de tiempo de ejecución Java cuando se inicialice, los directorios bin y bin\classic de JRE (Java Runtime Environment) deben existir en la variable de entorno de vía de acceso del sistema.
El método XJBInit() solamente acepta un parámetro: una matriz de series de caracteres. Cada serie de caracteres de la matriz representa un argumento de línea de mandatos que normalmente especificaría para un programa Java en la línea de mandatos Java.exe. Esta interfaz de serie de caracteres se utiliza para establecer los valores de la variable de entorno classpath, el tamaño de la pila, el tamaño del almacenamiento dinámico y los valores de depuración. Puede obtener una lista de estos parámetros si escribe java -? en la línea de mandatos.
Si establece incorrectamente un parámetro, recibirá un mensaje de error 0x6002 "Failed to initialize VM" (no se ha podido inicializar VM).
Debido a las limitaciones actuales de JNI (Java Native Interface), no se podrá cargar ni reinicializar el código JVM después de cargarlo. Por lo tanto, después de que se haya llamado al método XJBInit() una vez, las llamadas posteriores no tienen ningún efecto más que el de crear un objeto duplicado JClassFactory para que pueda acceder al éste. Es mejor almacenar el objeto XJB.JClassFactory globalmente y continuar utilizando otra vez este objeto.
- El siguiente extracto de Visual Basic muestra un ejemplo de cómo inicializar el código 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)