ActiveX 클라이언트 프로그래밍, JVM(Java Virtual Machine) 초기화 팁
JVM(Java™ Virtual Machine) 코드를 ActiveX to EJB(Enterprise Java Beans) 브릿지로 초기화합니다. ActiveX 클라이언트 프로그램(Visual Basic, VBScript 또는 ASP)의 경우 Java 클래스나 오브젝트에 액세스하려면, 프로그램이 수행해야 하는 첫 번째 단계는 프로세스 내 JVM(Java Virtual Machine) 코드를 작성하는 것입니다.
JVM 코드를 작성하려면, ActiveX 프로그램은 XJB.JClassFactory 오브젝트의 XJBInit() 메소드를 호출합니다. XJB.JClassFactory 오브젝트가 작성되고 XJBInit() 메소드가 호출되면, JVM이 초기화되며 사용할 준비가 됩니다.
XJB.JClassFactory를 사용하여 Java 런타임 DLL(Description definition language)을 찾으려면, 초기화 시 JRE(Java Runtime Environment) 바이너리 및 bin\classic 디렉토리는 시스템 경로 환경 변수에 존재해야 합니다.
XJBInit() 메소드는 하나의 매개변수, 문자열 배열만 허용합니다. 배열의 각 문자열은 Java.exe 명령행에서 보통 지정한 Java 프로그램에 대한 명령행 인수를 표시합니다. 이 문자열 인터페이스는 클래스 경로, 스택 크기, 힙 크기 및 디버그 설정을 설정하는 데 사용됩니다. java -?를 명령행에 입력하여 이 매개변수 목록을 가져올 수 있습니다.
매개변수를 잘못 설정하면 0x6002 "VM을 초기화할 수 없음" 오류 메시지를 수신합니다.
JNI(Java Native Interface)의 현재 제한사항 때문에, 로드된 후 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)