글
관련 이론 및 문법
(javac 참고)
http://kkikkodev.tistory.com/177
(Classpath 참고)
http://kkikkodev.tistory.com/187
문제 의도
MainClass 파일이 /apps/com/company/application 디렉토리안에 존재합니다. CLASSPATH 환경 변수가 "." (현재 디렉토리) 로 설정되어 있다고 가정합니다. MainClass 를 정상적으로 실행할 수 있는 명령어를 2 개 고르는 문제입니다.
답안
B, C
풀이 방법
주어진 소스코드를 살펴보면, MainClass 클래스가 있고, 이는 com.company.application 패키지로 선언되어 있습니다.
보기 A 에서는 /apps 디렉토리로부터 java MainClass 명령어를 실행한다고 했는데, 이는 잘못된 말입니다. 현재 환경변수에는 "." 가 설정되어 있으므로, /apps 가 설정되어 있습니다. 이 환경변수 디렉토리부터 com.company.application 패키지 안의 MainClass 를 실행시키려면 java com.company.application.MainClass 의 형태로 명령어를 실행해야 합니다. 그리고 기본적으로 패키지명을 생략할 수 없기 때문에 따라서 답안 후보에서 제외합니다.
보기 B 에서는 /apps 디렉토리로부터 java com.company.application.MainClass 명령어를 실행한다고 했는데, 이는 맞는 말입니다. 현재 환경변수에는 "." 가 설정되어 있으므로, /apps 가 설정되어 있습니다. 이 환경변수 디렉토리부터 com.company.application 패키지 안의 MainClass 를 실행시키려면 java com.company.application.MainClass 의 형태로 명령어를 실행해야 하므로 답안 후보가 됩니다.
보기 C 에서는 어느 디렉토리에서든 간에 java -classpath /apps com.company.application.MainClass 명령어를 실행한다고 했는데, 이는 맞는 말입니다. 현재 환경변수에는 "." 가 설정되어 있으므로, 임의의 현재 디렉토리가 설정될 것입니다. 하지만 java -classpath 명령어를 통해서 /apps 디렉토리를 classpath 로 설정하면서 동시에 com.company.application 패키지 안의 MainClass 를 실행하므로 보기 B 와 마찬가지로 실행이 됩니다. 따라서 답안 후보가 됩니다.
보기 D 에서는 /apps/com/company/application 디렉토리로부터 java -classpath . MainClass 명령어를 실행한다고 했는데 이는 맞지 않는 말입니다. java -classpath . 명령어를 통해서 /apps/com/company/application 디렉토리를 classpath 환경변수로 설정합니다. MainClass 는 이미 com.company.application 이라는 패키지로 선언되었으므로 실행시에 com.company.application 패키지명을 써주어야 하는데, 이것이 생략되어서 잘못되었습니다. 만약 생략하지 않는다 하더라도, 현재 classpath 최종 하위 디렉토리부터 com.company.application 패키지를 또 찾기 때문에 찾을 수 없어서 잘못되어 이는 답안 후보에서 제외합니다.
보기 E 에서는 /apps 디렉토리로부터 java -classpath /apps/com/company/application:. MainClass 명령어를 실행한다고 했는데, 이는 맞지 않는 말입니다. -classpath 옵션을 통해서 /apps/com/company/application 폴더와 현재 디렉토리인 ......./application 을 classpath 환경변수로 설정하는데, MainClass 앞에 패키지명이 생략되었으므로 기본적으로 오류가 납니다. 따라서 답안 후보에서 제외합니다.
보기 F 에서는 /apps/com/company/application 디렉토리로부터 java com.company.application.MainClass 명령어를 실행한다고 했는데 이는 맞지 않는 말입니다. 현재 환경변수에는 "." 가 설정되어 있으므로, ...../application 디렉토리가 설정되어 있을 것입니다. 이 디렉토리로부터 com.company.application.MainClass 를 찾으려고 하니 오류가 납니다. 따라서 답안 후보에서 제외합니다.
결과적으로 답안은 B 와 C 가 됩니다.
'4.1) OCJP > 1Z0-851 / 2012-08-28' 카테고리의 다른 글
OCJP (1Z0-851 / 2012-08-28 / Exam C) - 50 번 (0) | 2016.11.20 |
---|---|
OCJP (1Z0-851 / 2012-08-28 / Exam C) - 49 번 (0) | 2016.11.14 |
OCJP (1Z0-851 / 2012-08-28 / Exam C) - 48 번 (0) | 2016.11.14 |
OCJP (1Z0-851 / 2012-08-28 / Exam C) - 47 번 (0) | 2016.11.14 |
OCJP (1Z0-851 / 2012-08-28 / Exam C) - 46 번 (0) | 2016.11.14 |
OCJP (1Z0-851 / 2012-08-28 / Exam C) - 44 번 (0) | 2016.11.13 |
OCJP (1Z0-851 / 2012-08-28 / Exam C) - 43 번 (1) | 2016.11.13 |
OCJP (1Z0-851 / 2012-08-28 / Exam C) - 42 번 (0) | 2016.11.13 |
OCJP (1Z0-851 / 2012-08-28 / Exam C) - 41 번 (0) | 2016.11.13 |
OCJP (1Z0-851 / 2012-08-28 / Exam C) - 40 번 (0) | 2016.11.13 |
RECENT COMMENT