CUBRID에서 Java sp를 사용하기 위해서는 JRE가 설치 되어 있어야 한다.
CUBRID 매뉴얼에서는 다음과 같이 설명한다.
http://www.cubrid.org/manual/93/ko/sql/jsp.html#windows
CUBRID는 Windows 환경에서 jvm.dll 파일을 로딩하여 Java 가상 머신을 실행시킨다.
1) CUBRID는 먼저 시스템의 Path 환경 변수에서 jvm.dll 을 찾아 로딩한다.
2) 만약 찾지 못하면 시스템 레지스트리에 등록된 Java 런타임 정보를 이용한다.
위의 1), 2)에서 jvm.dll을 못 찾을 경우
Java VM library is not found: jvm.dll.
의 에러가 발생 한다.
이때는 설치 된 JRE의 어떤 버전을 이용하는지 확인이 필요할 때가 있다.
레지스트리 검색 순서는
64Bit의 경우
HKEY_LOCAL_MACHINESoftwareJavaSoft
HKEY_LOCAL_MACHINEWow6432NodeJavaSoft
순으로 찾게 되며
32Bit의 경우
HKEY_LOCAL_MACHINESoftwareJavaSoft
에서 찾는다.
또한 JRE/JDK가 둘다 설치 된 경우에는
JavaSoftJava Runtime Environment
JavaSoftJava Development Kit
순으로 찾는다.
따라서 간단하게 현재 OS의 레지스트리에서 JRE 버전을 찾는 스크립트를
다음과 같이 생성 할 수 있다.
@ECHO off SET KIT=JavaSoftJava Runtime Environment call:ReadRegValue VER "HKLMSoftware%KIT%" "CurrentVersion" IF "%VER%" NEQ "" GOTO FoundJRE SET KIT=Wow6432NodeJavaSoftJava Runtime Environment call:ReadRegValue VER "HKLMSoftware%KIT%" "CurrentVersion" IF "%VER%" NEQ "" GOTO FoundJRE SET KIT=JavaSoftJava Development Kit call:ReadRegValue VER "HKLMSoftware%KIT%" "CurrentVersion" IF "%VER%" NEQ "" GOTO FoundJRE SET KIT=Wow6432NodeJavaSoftJava Development Kit call:ReadRegValue VER "HKLMSoftware%KIT%" "CurrentVersion" IF "%VER%" NEQ "" GOTO FoundJRE ECHO Failed to find Java GOTO :EOF :FoundJRE call:ReadRegValue JAVAPATH "HKLMSoftware%KIT%%VER%" "JavaHome" ECHO %JAVAPATH% GOTO :EOF :ReadRegValue SET key=%2% SET name=%3% SET "%~1=" SET reg=reg IF DEFINED ProgramFiles(x86) ( IF EXIST %WINDIR%sysnativereg.exe SET reg=%WINDIR%sysnativereg.exe ) FOR /F "usebackq tokens=3* skip=1" %%A IN (`%reg% QUERY %key% /v %name% 2^>NUL`) DO SET "%~1=%%A %%B"dls |
실행 결과는 다음과 같다.
cub_jre_chek.bat C:Program FilesJavajre1.8.0_45 |
이를 이용해서 내가 이용하고자 하는 JRE 버전이 맞는 것인지 다시 한번 확인 해 보자.