발견 된 클래스에 관련 (또는 할당 된) 소스가없는 경우 증상이 완벽하게 설명됩니다.
- 환경 설정> Java> 설치된 JRE 에서 JDK 클래스의 소스를 연관시킬 수 있습니다 . JRE (JDK 아님)가 사용할 기본 JRE로 감지되면 JDK 클래스에 첨부 된 소스가없는 것입니다. 모든 JDK 클래스가 소스를 제공 한 것은 아니며 일부는 바이너리 형식으로 만 배포됩니다.
- 프로젝트의 빌드 경로에서 클래스를 수동으로 추가하려면 관련 소스를 수동으로 첨부해야합니다. 소스는 zip 또는 jar 파일, 작업 공간 또는 파일 시스템에있을 수 있습니다. Eclipse는 zip을 스캔하므로 소스가 아카이브 파일의 루트에 있지 않아도됩니다.
- 다른 플러그인 (maven, PDE 등)에서 오는 의존성 클래스. 이 경우 소스를 제공하는 방법은 플러그인에 달려 있습니다.
- PDE 는 각 플러그인에 플러그인 소스가 포함 된 해당 XXX.source 번들 이 있어야합니다 . 자세한 내용은 여기 및 여기를 참조하십시오 .
- m2eclipse 는 사용 가능한 경우 Maven 종속성에 대한 소스 및 javadoc을 가져올 수 있습니다. 이 기능은 m2eclipse 환경 설정에서 활성화해야합니다 (옵션의 이름은 " Download source and javadocs " 와 같습니다) .
- 다른 플러그인의 경우 해당 설명서를 참조해야합니다.
- 프로젝트에서로드 된 클래스는 프로젝트의 소스와 자동으로 일치합니다.
그러나 클래스와 소스를 올바르게 설정하더라도 Eclipse가 여전히 소스를 첨부하도록 제안하면 어떻게됩니까?
이것은 거의 항상 Eclipse가 예상과 다른 장소에서 클래스를 찾고 있음을 의미합니다. 소스 검색 경로를 검사하여 잘못된 클래스를 얻을 수있는 위치를 확인하십시오. 찾은 결과에 따라 경로를 업데이트하십시오.
중단 점에 도달하면 Eclipse가 전혀 찾지 않습니다.
이것은 소스 조회 경로에 현재 런타임에로드 된 클래스가 포함되어 있지 않을 때 발생합니다. 클래스가 작업 공간에 있어도 Eclipse는 소스 검색 경로를 엄격하게 따르고 현재 디버그 된 프로젝트의 종속성 만 첨부하므로 실행 구성에 표시되지 않을 수 있습니다.
PDE 의 디버깅 번들은 예외입니다 . 이 경우 런타임은 서로에 대한 종속성을 선언 할 필요가없는 여러 프로젝트로 구성되므로 소스 조회 경로에서 클래스를 사용할 수없는 경우에도 Eclipse는 작업 공간에서 클래스를 자동으로 찾습니다.
중단 점에 도달했을 때 변수를 볼 수 없거나 소스 만 열지 만 중단 점 행을 선택하지는 않습니다.
이는 런타임에서 JVM 또는 클래스 자체에 필요한 디버그 정보가 없음을 의미합니다. 클래스가 컴파일 될 때마다 디버그 정보를 첨부 할 수 있습니다. 클래스의 저장 공간을 줄이기 위해 때때로이 정보가 생략되어 이러한 코드를 디버깅하기가 어렵습니다. 유일한 기회는 디버그가 활성화 된 상태에서 재 컴파일을 시도하는 것입니다.
Eclipse 소스 뷰어는 실제로 실행되는 행과 다른 행을 표시합니다.
때로는 빈 공간도 실행되었음을 보여줄 수 있습니다. 이는 소스가 런타임 버전의 클래스와 일치하지 않음을 의미합니다. 이것이 가능하지 않다고 생각하더라도 올바른 소스를 설정했는지 확인하십시오. 또는 수행하려는 작업에 따라 런타임이 최신 변경 사항과 일치합니다.