2013-04-08 3 views
21

그래서 내가 warning: [options] bootstrap class path not set in conjunction with -source 1.6부트 스트랩 클래스 경로는

getting-입니다 설정되지 그리고 나는 그것에 대해 3 개 질문을하려고 생각합니다. 부트 스트랩 클래스 경로를 설정해야한다는 것을 이해하지만 어떻게하는지 잘 모르겠습니다. 빠른 Google이 오라클 페이지에서 인용 한 페이지로 나를 보냈지 만 오라클 페이지를 읽고 특히 잘 이해했다고 느끼지 않았습니다.

현재 Netbeans에서이 코드를 실행 중이므로 컴파일 및 실행 버튼을 누르기 만하면됩니다. 부트 스트랩 클래스 경로에 추가 할 수 있도록이 컴파일 방법을 지정하는 속성이 있습니까?

Netbeans에서만 실행하고 커맨드 라인에서 실행하는 경우에도 부트 스트랩 클래스 경로로 컴파일하는 올바른 방법은 무엇입니까? 그들은 $ javac -source 6 HelloWorld.java라고 말하지만, 단지 -source 1.6이 해결책일까요?

아마도 앞으로 더 많은 질문을 할 수 있습니다. 어떻게 이런 종류의 경고를 피할 수 있습니까? 만약 내가 조금이라도 이해한다면, 나는 오래된 자바 소스를 참조하고 따라서 오래된 메소드를 참조하고있다. 나는 그것이 언제 어떻게 언제 일어 났는지 확신하지 못한다.

답변

36

크로스 컴파일 중입니다. JDK 7 용 컴파일러를 사용하여 JDK 6 용 클래스를 컴파일하고 있습니다. 괜찮습니다.하지만 컴파일러는 문제를 피하기 위해 JDK 6 rt.jar을 사용하려고합니다. 그 뒤에있는 이유는 이전 언어 규칙 (이 경우 1.6)을 사용하고 있기 때문에 JDK 6에서 작동하지 않는 클래스를 생성 할 수 있지만 새로운 부트 스트랩 클래스를 생성 할 수 있기 때문입니다. 일부 메소드는 예를 들어 이전 JDK에 없을 수도 있습니다. 따라서 컴파일은 끝났지 만 일단 프로그램을 실행하면 MethodNotFoundException으로 불어날 수 있습니다.

솔루션의

커플, 당신은 단지도보다 나이가 컴파일러를 사용하지 왜 하나

  • 는 JDK 6에서 rt.jar을 지정 선택할 수 있습니다?
  • JDK 6 컴파일러 (rt.jar 포함)를 사용하십시오. 7 가지 기능이 필요하지 않은 경우에도 7을 사용하는 이유는 무엇입니까?
  • 경고를 무시하고 당신이 자바 7 개 기능
    • 내가 넷빈즈에 대해 알고하지 않습니다하지만 이클립스에서 당신은 또한 그래서 원은 JDK 6에 대해 컴파일 말할 수를 사용하지 않는 있는지 확인하는 좋은 테스트 커버리지를 Java 7 기능을 사용하면 실제로 컴파일되지 않습니다.
  • 변경 비즈니스 요구 및
+1

감사합니다, 나는 이것이 약간 지워진 것처럼 느낀다. – Stephopolis

+7

여러 가지 해결책이 그들에게하는 모든 지시없이 주어진다. – seansand

+0

@toomasr 이전 JDK로 되돌아 가면 로컬 컴퓨터에서 쉽게 작업 할 수 있습니다 (MacO는 한 가지 예외 btw 임). (더 큰) 회사에서 일할 때 당신은 너무 자주 JDK를 변경할 수 없습니다. 예를 들어, 대상 서버에 여전히 1.6이 붙어있는 동안 개발 컴퓨터에서 1.7을 사용해야합니다. 물론 이제 (서버 관리자)가 결국 1.7로 이동할 때까지 기다릴 수 있습니다. 그렇지 않으면 전문가처럼 행동하고 일을 끝내게됩니다. 당신의 선택은 무엇입니까? – whaefelinger

1

그냥 당신이 그것의 사용중인 JDK 1.7 제공을 프로젝트 속성을 마우스 오른쪽 버튼으로 클릭 이동 한 다음 바인딩에 가서 선택 자바 7에 대한 컴파일하여 넷빈즈 프로젝트의 기능과 이것이 문제를 일으키는 이유입니다. 이것은 문제를 해결하는 데 도움이되며 나를 위해 일했습니다.

+0

JDK 1.7에 '바인딩'을 사용하면 1.6을 부트 스트랩 클래스 경로로 지정할 수 있습니까? –

0

부트 스트랩 클래스 경로를 설정해야한다는 것을 알고 있지만 어떻게하는지 잘 모르겠습니다. 넷빈즈 8.0에서

.(2)로 이동 : 당신이 추가 할 수있는

Build > Compiling 

하단 필드의 "추가 컴파일러 옵션"입니다 : 범주 창에서

Run > Set Project Configuration > Customise... 

로 이동

-bootclasspath /your/path/to/lower/java/version/lib/rt.jar 
관련 문제