문제

Eclipse (Ganymede)에서는 Apache Commons httpclient를 사용하고 Httpclient 코드로 들어가는 코드를 디버깅하고 있습니다. 소스 코드를 다운로드하고 일반적인 방식으로 첨부하려고했습니다 (메소드 이름을 CTRL- 클릭하고 소스 첨부 버튼을 사용). 성공하지 못한 외부 파일과 외부 폴더로 첨부하려고했습니다. 문제가없는 소스를 첨부했으며 현재 최대 절전 모드 소스 코드를 성공적으로 발전시킬 수 있습니다.

Sourcepath를 수동으로 추가하기 위해 .classpath 파일을 직접 편집하려고 시도했습니다. 여전히 운이 없습니다. 프로젝트를 새로 고치고 깨끗한 빌드를하고 일식을 폐쇄하고 재개하는 것은 문제를 해결하지 못합니다. 실망스럽게도 Eclipse는 오류 메시지를 제공하지 않습니다. 소스를 첨부하지 않습니다.

.Claspath의 항목은 다음과 같습니다.

<!-- Hibernate. Works -->
<classpathentry kind="lib" path="/myEAP/EarContent/APP-INF/lib/hibernate.jar" sourcepath="D:/Data/Download/hibernate-3.2.2.ga/hibernate-3.2/src"/>

<!-- Commons HttpClient. Will not attach -->
<classpathentry kind="lib" path="/myEAP/EarContent/APP-INF/lib/commons-httpclient.jar" sourcepath="D:/Data/Download/commons-httpclient-3.1/src/java"/>

나는 d : /data/download/commons-httpclient-3.1/src로의 경로를 변경하려고 시도했지만 그것은 작동하지 않습니다.

디렉토리 구조는 다음과 같습니다.

D
  Data
    Download
      commons-httpclient-3.1
        src
          java
            org
              apache
                commons
                  httpclient
                    AutoCloseInputStream.java
                    ... (and so forth)
도움이 되었습니까?

해결책

최상위 패키지가 포함 된 디렉토리로 직접 "D : /data/download/commons-httpclient-3.1/src/java"를 가리키십시오. 저를 위해 일한 것은 "org"폴더와 그 아래의 모든 것을 포함하는 새 SRC ZIP 파일을 만드는 것이 었습니다.

다음은 내 .classpath 항목입니다 (나에게 적합한).

<classpathentry kind="lib" path="/blib/java/commons-httpclient-3.1/commons-httpclient-3.1.jar" sourcepath="/blib/java/commons-httpclient-3.1/commons-httpclient-3.1-src.zip"/>

다른 팁

나는 때때로, 당신이 당신이 정확하다고 생각하는 디렉토리를 가리키고 있다는 것을 알았고, 여전히 첨부 된 소스 Blah blah에서 파일을 찾을 수 없다고 말합니다.

이시기에, 나는 마지막 경로 요소가 "SRC"라는 것을 깨달았습니다. 이 경로 요소를 제거합니다 (따라서 실제로 "org"또는 "com"폴더가 위치한 실제 경로 위의 한 레벨을 가리키면 마술처럼 작동합니다.

어쨌든, Eclipse는이 "SRC"경로 요소를 존재하는 경우, 그리고 당신이 소스 경로에 포함 된 경우 Eclipse Chokes를 의미하는 것처럼 보입니다. 또는 그런 것.

압축이없는 SRC 대신 src.zip을 첨부 해보십니까?

시작 구성의 소스 경로에 추가하십시오.

소스를 첨부하는 것이 클래스 경로의 라이브러리로 들어가는 데 필요한 전부는 아닙니다. 해당 라이브러리에는 디버그 기호로 컴파일해야합니다. 대부분의 Java 라이브러리는 그러한 방식으로 편집되고 배포되기 때문에 일반적으로 문제가되지 않지만, 발견 한대로 일부는 그렇지 않습니다.

소스가 첨부되지 않더라도 실제로 외부 라이브러리로 들어갈 수 있다는 점에 주목하는 것은 흥미 롭습니다. 라인 별 소스를 볼 수는 없습니다 (모든 디버그 정보는 여전히 작동합니다).

Commons httpclient (너무 어렵지 않음)의 사용자 정의 버전을 컴파일 하여이 문제를 "수정"하거나 "라이브러리"아이디어 전체를 건너 뛸 수 있습니다. 일반적인 개발 관행으로서, 타사 라이브러리로 들어가는 것은 유용한 정보를 거의 얻지 못할 것입니다. 나는 지난 10 년 동안 한두 번했을 것입니다. 실제로 딜레마를 해결하는 데 실제로 더 가까이도 가져 오지 않았습니다.

소스 아카이브 경로에서 우주 (또는 국소화 된) 심볼의 문제를 생각합니다. 간단한 경로로 다른 곳으로 옮기십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top