1. 웹로직 구동 JRE를 일치 시킨다..... (디플로이가 되지 않는경우가 있다.)
java.lang.ClassNotFoundException: com.sun.tools.javac.Main
sun/tools/javac/Main
관련글
com/sun/tools/javac/Main (Unsupported major.minor version 48.0)
여기서 major.minor version 48.0 의 뜻은
majer 가 48, miner 가 0 입니다.
48 > 45 입니다. 48 - 44 = 4
그러므로 JDK 의 버전 구하는 공식에 의하여
JDK 1.4 라는 뜻입니다.
즉 com.sun.tools.javac.Main 클래스 파일은 JDK 1.4 포맷으로 되어 있다는 뜻입니다.
tools.jar 는 JDK 1.4 의 것이고, 톰캣은 JDK 1.4 미만의 버전에서 동작하는 것으로 추측됩니다.
JSP 엔진은 내부적으로
1단계 변환: *.jsp -----> *.java
2단계 변환: *.java -----> *.class
작업을 벌입니다. 여기서 2단계 변환 중에 com.sun.tools.javac.Main 클래스가 쓰입니다.
서블릿은 이미 컴파일되어 있으므로 이 클래스가 필요 없습니다.
JSP 엔진이 tools.jar 에 들어 있는com.sun.tools.javac.Main 클래스 파일을
로딩하는 순간에 이 클래스 파일의 포맷이 JDK 1.4 포맷이므로
JSP 엔진은 자기가 기반으로 하는 것 보다 높은 버전의 포맷으로 된 클래스 파일을 로딩하지 못한다는 에러 메세지로 이해합니다.
결론적으로 tool.jar 을 잡아준 CLASSPATH 와 JAVA_HOME 을 체크해 보시면 이해가 될 것입니다.
"Windows Xp" Tomcat 4 + apache 1.2.24를 설치했는데.. 글쎄 서블릿은 되는데 jsp는 안되더라구요..
Servlet Exception : /sun/tools/javac/
하여튼 이런 예외가 뜨면.. 분명 tools.jar라고 생각하시면 됩니다.
그래서, tools.jar를 tomcat/lib에 tomcat/common/lib에 copy를 했는데도 같은 문제가 나오더라구요
그래서, window registry의 java runtime environment가 1.3인걸 분명 확인했는데.. 왜 이런 문제가 나오는 걸까 하는 고민중.....
아차!!!
전 j2sdk1.4를 쓰고 있던거였죠. 아무리 복사해도.. Java Runtime Environment 1.3에 부합되지 않기때문에 계속 에러가 뜨는 거였답니다.
jdk1.3이 없어서, JBuiler의 jdk 1.3의 jre 폴더의 tools.jar를 tomcat의 두군데 폴더에 넣고 돌렸더니.. 확실히 되네요~~.. 여러분 실수하지 마세요!!
[출처] 웹로직 디플로이 주의사항|작성자 흰곰