새로 라이브러리를 만들었다. 컴파일하고 jar 파일을 생성해서 테스트 서버로 옮겨서 실행을 시켰다. 그런데 아래와 같은 예외를 뱉으며 실행이 안되는 것이 아닌가~
예외 메시지를 읽어보니 컴파일된 .class 파일의 버전이 실행하는 java의 버전과 맞지 않아서 나오는 것 같다. 예를 들어 컴파일은 JDK6버전으로 하고 실행은 JDK5버전으로 실행하는 경우 이런 예외를 볼 수 있다. 반대로 JDK5로 컴파일 하고 JDK6으로 실행하면 정상적으로 동작한다. 왜냐?? 당연히 하위 버전을 지원해 줘야 사람들이 계속 쓰겠지??
아무튼.. 테스트 서버가 JDK5버전이 설치되어 있어서 이클립스 설정도 5버전으로 바꾸고 라이브러리를 개발했는데 왜 이런 메시지가 나올까~~?? 이상하다 싶었는데 생각해보니 ant로 컴파일하고 jar 파일로 만든 것을 잊고 있었다. -ㅅ-;;; 이클립스만 바꿔주면 뭐하니.. 컴파일을 ant로 했는걸 =ㅅ= 그래서 아주 간단하게 ant build 파일 수정~
ant build 파일에서 컴파일하는 javac 태스크의 target버전을 지정해 주면 된다.
- Ant Manual
- Ant javac 태스크
java.lang.UnsupportedClassVersix-onError: Bad version number in .class file
예외 메시지를 읽어보니 컴파일된 .class 파일의 버전이 실행하는 java의 버전과 맞지 않아서 나오는 것 같다. 예를 들어 컴파일은 JDK6버전으로 하고 실행은 JDK5버전으로 실행하는 경우 이런 예외를 볼 수 있다. 반대로 JDK5로 컴파일 하고 JDK6으로 실행하면 정상적으로 동작한다. 왜냐?? 당연히 하위 버전을 지원해 줘야 사람들이 계속 쓰겠지??
아무튼.. 테스트 서버가 JDK5버전이 설치되어 있어서 이클립스 설정도 5버전으로 바꾸고 라이브러리를 개발했는데 왜 이런 메시지가 나올까~~?? 이상하다 싶었는데 생각해보니 ant로 컴파일하고 jar 파일로 만든 것을 잊고 있었다. -ㅅ-;;; 이클립스만 바꿔주면 뭐하니.. 컴파일을 ant로 했는걸 =ㅅ= 그래서 아주 간단하게 ant build 파일 수정~
<javac target="1.5">
...
</javac>
...
</javac>
ant build 파일에서 컴파일하는 javac 태스크의 target버전을 지정해 주면 된다.
- Ant Manual
- Ant javac 태스크






덧글