본문 바로가기

Cafe24

Cafe24 JSP 호스팅 - java 파일 컴파일 하는 법

Cafe24 서버에 다른 환경에서 컴파일된 class 파일을 바로 업로드 하면 제대로 작동이 안될 가능성이 높습니다. 따라서 java 파일을 업로드한 후 Cafe24 서버에서 컴파일 해주어야 합니다. Cafe24의 FAQ에 설명되어 있는 서블릿 컴파일을 위한 기본적인 명령어는 다음과 같습니다. (띄어쓰기에 주의해서 입력해야 합니다.)

javac -d . -classpath /home/hosting_users/Cafe24아이디/tomcat/lib/servlet-api.jar 컴파일할파일이름.java




하지만 이는 서블릿을 컴파일하기 위한 명령어이고 iBatis나 Struts 등을 사용할 경우에는 이를 컴파일하기 위한 라이브러리를 classpath에 추가해야 합니다. 보통 ';' 나 ':'를 뒤에 붙여주어 추가하는데 Cafe24의 경우 ':'를 붙여 추가합니다. Cafe24의 서버에 업로드시 Library 파일은 /WEB-INF/lib 폴더안에 위치하므로 이 경로안에 있는 jar 파일 중 컴파일을 위해 필요한 jar 파일을 classpath에 추가해 주도록 합니다. 

javac -d . -classpath /home/hosting_users/Cafe24아이디/tomcat/lib/servlet-api.jar:/home/hosting_users
/Cafe24아이디/www/WEB-INF/lib/라이브러리파일이름.jar
컴파일할파일이름.java   




또한 만일 컴파일할 클래스가 본인이 직접 작성한 다른 패키지에 있는 클래스를 참조하는 경우 이 클래스파일들 또한 classpath에 추가해 주어야 합니다. 직접 작성한 class 파일들은 모두 /WEB-INF/classes 폴더안에 위치하므로 아래와 같이 이 경로를 그대로 추가해 주면 됩니다.

javac -d . -classpath /home/hosting_users/Cafe24아이디/tomcat/lib/servlet-api.jar:/home/hosting_users
/Cafe24아이디/www/WEB-INF/lib/라이브러리파일이름.jar:/home/hosting_users/Cafe24아이디/www/WEB
-INF/classes/
컴파일할파일이름.java




컴파일 명령어 중 javac -d 다음에 오는 것은 파일을 어느 위치에 컴파일 할 것이지 지정하는 부분인데 위의 경우처럼 '.'으로 표시하는 것은 현재 디렉토리에 컴파일 하겠다는 것을 의미합니다. 컴파일된 class 파일은 패키지명에 해당하는 디렉토리들을 자동으로 생성하므로 Cafe24 서버의 경우에는 /WEB-INF/classes/ 로 지정하면 편리합니다. 

javac -d  ./www/WEB-INF/classes/ -classpath /home/hosting_users/Cafe24아이디/tomcat/lib/servlet-api.jar:/home/hosting_users/Cafe24아이디/www/WEB-INF/lib/라이브러리파일이름.jar:/home/hosting_us
ers/Cafe24아이디/www/WEB-INF/classes/ 컴파일할파일이름.java




참고 : 건우농장 - 펌] Java classpath (UNIX와 Mac OS X) 관리하기 (한글)