///////
Search
🥧

클래스 패스 - 황준하

◆가상기계가 클래스를 찾는 3가지 방법

STS에서 명령 프롬프트 창 띄우기

첫번째 방법

⇒가상기계는 현재 디렉토리 부터 찾는다.

C:\Users\A\Documents\workspace-sts-3.9.11.RELEASE\java_jvm\src>javac JvmTest.java C:\Users\A\Documents\workspace-sts-3.9.11.RELEASE\java_jvm\src>java JvmTest JVMTEST
Java
복사

2번째 방법

⇒일반적으로 환경 변수인 CLASSPATH에 설정된 디렉터리에서 찾는다. CLASSPATH변수를 설정하려면 명령 프롬프트에서 다음과 같은 명령어를 사용한다. ⇒C:\ >set CLASSPATH=C:\classes;C:\lib;.{클래스명}

C:\\\\Users\\\\A\\\\Documents\\\\workspace-sts-3.9.11.RELEASE\\\\java_jvm\\\\src>cd .. C:\\\\Users\\\\A\\\\Documents\\\\workspace-sts-3.9.11.RELEASE\\\\java_jvm>java JvmTest 오오류류: 기기본본 클클래래스스 JvmTest을을(를를) 찾찾거거나나 로로드드할할 수수 없없습습니니다다. 원원인인: java.lang.ClassNotFoundException: JvmTest
Plain Text
복사
“cd ..” 명령어는 상위 디렉토리로 이동할 수 있는 명령어이다.
위 로그에서 “ C:\Users\A\Documents\workspace-sts-3.9.11.RELEASE\java_jvm\src “ 이었던 경로가 “ C:\Users\A\Documents\workspace-sts-3.9.11.RELEASE\java_jvm “ 로 바뀐것을
확인할 수 있다.
이 위치에서 “java JvmTest”를 하게 되면 현재 디렉토리에는 Jvmtest.class 파일이 없기 때문에 오류가 발생하게 된다.
C:\\Users\\A\\Documents\\workspace-sts-3.9.11.RELEASE\\java_jvm>set classpath=C:\\Users\\A\\Documents\\workspace-sts-3.9.11.RELEAS E\\java_jvm\\src C:\\Users\\A\\Documents\\workspace-sts-3.9.11.RELEASE\\java_jvm>java JvmTest JVMTEST C:\\Users\\A\\Documents\\workspace-sts-3.9.11.RELEASE\\java_jvm>
Plain Text
복사
이때, “set classpath={파일 경로}” 명령어로 클래스패스를 지정해주면 정상적으로 작동한다.
환경변수 classpath가 “ C:\Users\A\Documents\workspace-sts-3.9.11.RELEASE\java_jvm\src “로 지정되었기 때문에 JVM이 위 경로에서 클래스를 찾게 된다.

3번째 방법

⇒가상 머신을 실행할 때 옵션 -classpath를 사용할 수 있다.

즉 가상 머신을 실행할 때, 클래스 경로를 알려주는 것이다.
이클립스는 내부적으로 이 방법을 사용한다. 이 방법이 가장 권장되는 방법이라고 한다.