자바 환경 변수 설정

min·2022년 1월 23일
0

참고
https://shinjekim.github.io/java/2020/01/03/%EC%9E%90%EB%B0%94-%ED%99%98%EA%B2%BD%EB%B3%80%EC%88%98-%EC%84%A4%EC%A0%95%EC%9D%B4-%ED%95%84%EC%9A%94%ED%95%9C-%EC%9D%B4%EC%9C%A0/
https://hyoje420.tistory.com/7
https://okky.kr/article/996348
https://okky.kr/article/1052543?note=2513359

개발 환경 다시 올리다가 환경 변수에 classpath를 설정해놨다가 반나절을 날려버려서 정리해본다.

왜 환경변수를 설정하나요?

  • 환경변수? 운영체제가 참조하는 변수
  • 운영체제가 컴퓨터의 어떤 경로에서든 특정 파일(어플리케이션)을 인식 할 수 있도록 환경변수를 등록해줘야 한다.

환경 변수의 종류

  • 사용자 변수: OS내의 사용자 별로 다르게 설정이 가능한 환경 변수
  • 시스템 변수: 시스템 전체에 모두 적용되는 환경 변수

용어

  • path: 자주쓰는 프로그램의 경로를 path에 등록시켜두면 그 경로에 존재하는 프로그램을 어떠한 장소에서든 실행 시킬 수 있다.
    시스템에서 바이너리를 실행하기 위한 윈도우 환경 변수


ipconfig 명령어 또한 C:\\Windows\System32 경로가 path에 등록이 되어 있기 때문에 특정 위치가 아니여도 명령어를 실행 할 수 있는 것이다.

자바 환경변수 설정 방법

  1. JDK를 설치한다.
  2. java > jdk > bin 디렉토리의 경로를 환경 변수로 설정해준다. JRE가 아니라 JDK의 경로를 잡도록
    • bin 디렉토리 경로까지 설정하나요? bin 디렉토리 하위에 프로그램을 실행하기 위한 실행 파일이 존재하기 때문이다. (.exe, .com, .bat)
  3. 내 컴퓨터 > 속성 > 고급 시스템 설정 > 환경 변수에서 시스템 변수에 JAVA_HOME을 추가해준다.

우선 나는 지금은 bin까지 디렉토리의 경로로 잡지 않고 jdk까지만 잡아둔 상태이다.

  1. 시스템 변수 > Path를 선택해서 %JAVA_HOME%을 추가해준다.

나 같은 경우에는 JAVA_HOME 경로에 bin을 추가하지 않은 상태임으로 %JAVA_HOME%\bin 과 같은 형태로 추가해준다.

  1. cmd에서 javac 명령어를 입력해보자.
    javac은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치파일이 아니라는 문구가 뜨면 실패한 경우이다.

여기까지는 잘 아는 방법인데 그때의 내가 왜 그랬는지 모르겠지만 classpath도 추가하면서 뭔가 꼬였었다.

시스템 변수로 CLASSPATH를 추가하고 %JAVA_HOME%\lib을 추가해줬다.
이 때 CLASSPATH는 JVM이 라이브러리 클래스들의 위치를 참조하기 위해 설정해두는 것인데 J2JDK 버전 이후 부터는 classpath를 따로 설정하지 않아도 된다고 한다. (\jre\lib\text 폴더에 필요한 클래스 라이브러리를 복사해두면 사용 가능)

외부 라이브러리, 빌드한 라이브러리를 사용해야하는 경우 classpath에 추가해야 클래스명으로 접근이 가능하고 아니면 절대 경로로 접근해야 함.
어렵다..
classpath를 환경 변수로 설정하는 것이 좋지 않은 이유는 시스템 전체의 자바 프로그램이 모두 같은 버전의 라이브러리를 공유해야되기 때문. 충돌 문제가 존재 할 수 있기때문에 프로그램 단위 별로 실행 인자에 넣는 것을 추천한다.

profile
발등에 불이 따뜻하다..

0개의 댓글