참고
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를 설정해놨다가 반나절을 날려버려서 정리해본다.
ipconfig
명령어 또한 C:\\Windows\System32
경로가 path에 등록이 되어 있기 때문에 특정 위치가 아니여도 명령어를 실행 할 수 있는 것이다.
bin
디렉토리 경로까지 설정하나요? bin 디렉토리 하위에 프로그램을 실행하기 위한 실행 파일이 존재하기 때문이다. (.exe, .com, .bat)JAVA_HOME
을 추가해준다.우선 나는 지금은 bin까지 디렉토리의 경로로 잡지 않고 jdk까지만 잡아둔 상태이다.
%JAVA_HOME%
을 추가해준다.나 같은 경우에는 JAVA_HOME 경로에 bin을 추가하지 않은 상태임으로 %JAVA_HOME%\bin 과 같은 형태로 추가해준다.
javac
명령어를 입력해보자.여기까지는 잘 아는 방법인데 그때의 내가 왜 그랬는지 모르겠지만 classpath
도 추가하면서 뭔가 꼬였었다.
시스템 변수로 CLASSPATH를 추가하고 %JAVA_HOME%\lib을 추가해줬다.
이 때 CLASSPATH는 JVM이 라이브러리 클래스들의 위치를 참조하기 위해 설정해두는 것인데 J2JDK 버전 이후 부터는 classpath를 따로 설정하지 않아도 된다고 한다. (\jre\lib\text 폴더에 필요한 클래스 라이브러리를 복사해두면 사용 가능)
외부 라이브러리, 빌드한 라이브러리를 사용해야하는 경우 classpath에 추가해야 클래스명으로 접근이 가능하고 아니면 절대 경로로 접근해야 함.
어렵다..
classpath를 환경 변수로 설정하는 것이 좋지 않은 이유는 시스템 전체의 자바 프로그램이 모두 같은 버전의 라이브러리를 공유해야되기 때문. 충돌 문제가 존재 할 수 있기때문에 프로그램 단위 별로 실행 인자에 넣는 것을 추천한다.