2011-05-12 5 views
3

안녕하세요, 저는 처음으로 Java Cert를 공부하고 있습니다! Hurah! 미안 해요, 너무 cheezy 소리를 의미하지는 않지만, 나는 그것을 도울 수 없어 :) Anywho, 아래의 질문과 대답을 이해하려고. 나는 그것을 얻지 않는다. . . 나는 커맨드 라인을 많이 사용하지 않는다 (주로 NetBeans와 나는 Eclipse에 익숙해있다). 모든 포인터 크게 감사하겠습니다.Java 2 Platform, Standard Edition 6 Sun 인증 프로그래머


목표 : 7.2 : 클래스와 명령 줄의 예가 주어지면 예상되는 런타임 동작을 결정합니다. 10)

감안할 때 : 명령 줄을 호출이 출력이 발견 생산할 예정

1. class x { 
2. public static void main(String [] args) { 
3.  String p = System.getProperty("x"); 
4.  if(p.equals(args[1])) 
5.  System.out.println("found"); 
6. } 
7. } 

를? java 명령
옵션 C에 대한
API가 올바른지 :

a) java -Dx=y x y z 
b) java -Px=y x y z 
c) java -Dx=y x x y z (*) 
d) java -Px=y x x y z 
e) java x x y z -Dx=y 
f) java x x y z -Px=y 

//

참조하는 대답은 C에게 있습니다 그래서. -D는 속성을 설정하고 args [1]은 값이 y 인 두 번째 인자입니다.


엄. . . 어떻게 args [1]가 두 번째 인수입니까? 나는 "p"가 문자열 {y x x y z}와 같을 것이라고 생각했습니다. 당신이 다음 java -Dx=y x x y z-Dx=y로 전화를 실제로

답변

7

엄. . . 어떻게 args [1]가 두 번째 인수입니까? 나는 "p"가 문자열 {y x x y z}와 같을 것이라고 생각했습니다.

질문이 까다 롭습니다. c)에서는 x y z 인수로 x 클래스를 시작합니다. -D 옵션을 사용하면 속성이 y으로 설정됩니다.

따라서 클래스 x 시작될 때

  • args가 될 것이다`문자열 [] { "X", "Y", "Z"}, 및
  • p"y" 것이다.

우리는 다음 args[1]p 비교 ... 그리고 두 개의 문자열은 equal이다.

+0

차가움. 알 겠어. Sweeeeeeeeet. 고마워요! – Mike

+1

그 질문은 너무 까다 롭습니다. 내가 왕이 된 경우, "MAIN.JAVA"라는 이름 대신에 클래스라고 부르면 --- 심리적 가치를 실질적으로 저 지르지 않습니다. 멋진 질문이지만, 너무 까다 롭습니다. (내가 대문자로 말할 때, FYI.) –

+0

@Julius - 군주제가 시대에 뒤 떨어진 개념임을 증명해 주셔서 감사합니다. :-) –

3

- y 가치를 시스템 특성 x을 설정, 그것은 x 첫 번째는 당신이 전화를 마지막으로 "X, Y, Z"는 클래스 이름이고, 인수로 계산하지 않습니다 프로그램에 전달 된 실제 인수입니다.

또한 -D 명령 줄 인수를 사용하여 시스템 값을 설정하면 명령 줄 인수가 공백으로 구분된다는 일반적인 규칙을 따릅니다. 그렇기 때문에 시스템 속성 x의 값은 y x x y z이 아니라 y입니다.

+0

알겠습니다. 그것은 매우 냉정한 soooooo 다. 고마워요! – Mike

0

트릭은 그래서

class x { 

이다 (물론, 현실 세계에서 자신의 클래스 x라는 이름의 어떤 사람은 첫 월급의 :-)를받을만큼 오래 살아남을 것입니다) 'java'(옵션 제외) 다음의 첫 번째 인수는 클래스 이름 (이 경우 'x')이고 나머지는 입력 인수 목록이라는 사실을 거의 잊을 수 있습니다.

나는 이것이 좋은 질문이라고 생각하지 않습니다. 어쨌든 누가 'x'라는 이름을 지을 것입니까? 이 질문을 디자인 한 사람은 교수형에 처해야합니다.