카테고리 없음

JAVA 환경 변수 CLASSPATH

BeomJun.Kwon 2022. 8. 15. 22:04

 

좋은 질문인데 이상하게 비추가 있네요.
CLASSPATH를 환경변수로 설정하는 것은 원래부터 좋은 방법이 아니었습니다. 
그렇게 하면 시스템 전체의 자바 프로그램이 모두 같은 버전의 라이브러리를 공유해야 하기 때문에 충돌의 문제도 있고 관리하기도 번잡하기 때문입니다.
제가 짐작하기로는 아마 처음 자바가 유행을 타기 시작했을 때 인터넷에 돌아다니는 따라하기 문서나 일부 서적에서도 무조건 자바를 설치하면 항상 CLASSPATH를 잡아야 한다거나, 심지어 tools.jar 같은 것을 넣어야 한다는 등 잘못된 정보를 유포한 것이 그런 오해가 널리 퍼진 이유가 아닐까 싶습니다.
어쨌건 클래스 경로는 그냥 프로그램 단위로 실행 인자에 넣는 것이 좋습니다. 
그리고 웹 개발 환경이라면 컨텍스트 단위, 혹은 서버 단위로 자동으로 인식하는 경로가 있으니 그걸 활용하는 것이 올바른 방법입니다.


PATH는 시스템에서 바이너리를 실행하기 위한 경로이므로 CLASSPATH 환경변수와는 무관합니다.
CLASSPATH 환경변수는 자바 클래스로더가 기본적으로 바라보는 경로입니다. 
자바를 학습하는 단계에서는 기본 클래스패스를 설정하는게 좋을 순 있으나 애플리케이션을 개발하는 상황에서는 별도의 경로를 지정하는게 올바른 행위입니다. 
자바 웹 애플리케이션을 실행할 수 있는 톰캣의 경우 CLASSPATH 환경변수를 무시하고 별도의 경로를 클래스패스로 잡도록 되어있죠. 이는 fender님이 말씀하신 라이브러리 공유 문제를 방지하기 위한 방법일 수 있습니다.

 

 

[참조] https://okky.kr/article/1052543