Programmation de client ActiveX : conseils pour l'initialisation de la machine virtuelle Java
Initialisez le code JVM (Java™ virtual machine) avec la passerelle ActiveX vers EJB (Java Beans). Pour qu'un programme client ActiveX (Visual Basic, VBScript ou ASP) accède aux classes ou aux objets Java, il doit créer au préalable un code JVM (Java virtual machine) dans son processus.
Pour ce faire, le programme ActiveX appelle la méthode XJBInit() de l'objet XJB.JClassFactory. Une fois l'objet XJB.JClassFactory créé et la méthode XJBInit() appelée, la machine JVM est initialisée et prête à l'emploi.
Pour permettre à XJB.JClassFactory de trouver les DLL du contexte d'exécution Java à l'initialisation, les répertoires du JRE (Java Runtime Environment) bin et bin\classic doivent exister dans la variable d'environnement PATH du système.
La méthode XJBInit() n'accepte qu'un seul paramètre : un tableau de chaînes. Chaque chaîne du tableau correspond à un argument de la ligne de commande. Dans un programme Java, cet argument est normalement spécifié sur la ligne de commande de Java.exe. Cette interface permet de définir le chemin d'accès aux classes, la taille de la pile, la taille du tas (heap) et les paramètres de débogage. Pour consulter la liste de ces paramètres, tapez java -? sur la ligne de commande.
Lorsque vous définissez un paramètre de façon incorrecte, le message d'erreur 0x6002 "Failed to initialize VM" est généré.
En raison des limitations actuelles de Java Native Interface (JNI), il est impossible de décharger ou de réinitialiser le code JVM après son chargement. Par conséquent, lorsque la méthode XJBInit() a été appelée une fois, les appels successifs ont pour seul effet de créer un objet JClassFactory dupliqué auquel vous pouvez accéder. Il est préférable de stocker votre objet XJB.JClassFactory globalement et de réutiliser cet objet.
- Voici un exemple d'initialisation de la machine JVM sous Visual Basic :
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)