◆가상기계가 클래스를 찾는 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를 사용할 수 있다.
•
즉 가상 머신을 실행할 때, 클래스 경로를 알려주는 것이다.
•
이클립스는 내부적으로 이 방법을 사용한다. 이 방법이 가장 권장되는 방법이라고 한다.