오라클 DB에 접속하는 Java 프로그램을 컴파일 하거나, 실행할 때 Unsupported majar.minor version 에러가 발생할 수 있습니다.
$ javac jdbcTest_CNT.java
warning: oracle/jdbc/driver/OracleDriver.class(oracle/jdbc/driver:OracleDriver.class): major version 51 is newer than 50, the highest major version supported by this compiler.
It is recommended that the compiler be upgraded.
1 warning
$ java jdbcTest_CNT
Exception in thread "main" java.lang.UnsupportedClassVersionError: oracle/jdbc/driver/OracleDriver : Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at jdbcTest_CNT.main(jdbcTest_CNT.java:56)
원인은 Oracle JDBC 버전과 JDK 버전, Java 버전이 서로 다르기 때문입니다.
예를 들어,
아래와 같이 ClassPath 에는 ojdbc7.jar 파일을 사용하도록 설정해놓고,
컴파일 or 실행할 때는 Java 6 버전(1.6 버전)을 쓰게 되면 이런 에러가 발생합니다.
export CLASSPATH=.:$ORACLE_HOME/jdbc/lib/ojdbc7.jar
$ javac -version
javac 1.6.0_37
$ java -version
java version "1.6.0_37" Java(TM) SE Runtime Environment (build 1.6.0_37-b06)
Java HotSpot(TM) 64-Bit Server VM (build 20.12-b01, mixed mode)
이런 경우, JDK, Java 버전을 1.7 로 똑같이 맞춰주던가,
아니면, $ORACLE_HOME/jdbc/lib/ 디렉토리에 가보면, ojdbc6.jar 파일이 있습니다.
이걸 ClassPath 에 잡아주면 에러없이 잘 동작합니다.
오라클 DB버전별로 지원되는 JDBC 버전과 JDK 버전이 있습니다. 버전에 맞는 걸 정확히 확인하고 사용하는 것이 바람직합니다.
'IT관련' 카테고리의 다른 글
(12cR1 신기능) 오라클 Lateral Inline View, 인라인뷰에서 조인시 ORA-00904 에러 방지 (0) | 2020.10.05 |
---|---|
오라클 DML(Insert, Update, Delete) 빈도를 가늠할 수 있는 DBA_TAB_MODIFICATIONS (테이블 변경 내역) (0) | 2020.08.13 |
오라클 멀티테넌트 DB 접속 방법 (Connect Multi-Tenant by SQLPlus) (0) | 2020.07.02 |
Top SQL 조회, SQL Plan 확인 프로그램 다운로드 - Oracle 무료 DB관리툴 (0) | 2020.07.01 |
오라클 Alertlog 파일 분석 프로그램 다운로드 - Oracle 무료 DB관리툴 (2) | 2020.07.01 |