2008-10-10 1 views
5

В Eclipse (Ganymede) Я отлаживаю код, который использует Apache Commons HttpClient, и хотел бы перейти в код HttpClient. Я загрузил исходный код и попытался подключить его обычным способом (CTRL-щелчок по имени метода и использование кнопки «Прикрепить файл»). Я попытался прикрепить как внешний файл, так и внешнюю папку без успеха. Я подключил источник раньше без каких-либо проблем и в настоящее время успешно перейду в исходный код Hibernate.Attach Source Issue in Eclipse

Я даже попытался редактировать файл .classpath напрямую, чтобы добавить исходный путь вручную. Еще не повезло. Обновление проекта, чистая сборка, закрытие и повторное открытие Eclipse не решают проблему. Разочарочно, 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) 
+0

Можете ли вы переформатировать записи .classpath, чтобы они были видны (после разметки)? – 2008-10-10 23:43:01

ответ

6

Попробуйте указать его в каталоге, содержащем пакет верхнего уровня, «D: /Data/Download/commons-httpclient-3.1/src/java» для вас. Для меня работало создание нового zr-файла src, содержащего папку «org» и все под ним.

Вот мой вход .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"/> 
2

Try крепления src.zip вместо расстегнутой СРК?

+0

Пробовал это первым. Благодарю. – 2008-10-10 16:17:30

2

Попробуйте добавить его к исходному пути конфигурации запуска.

1

Прикрепление источников - это не все, что требуется для входа в библиотеку на пути к классам; эта библиотека также должна быть скомпилирована с помощью отладочных символов. Обычно это не проблема, так как большинство библиотек Java скомпилированы и распределены таким образом, но, как вы уже нашли, некоторые из них не являются.

Интересно отметить, что вы можете фактически войти во внешние библиотеки, даже без подключенного источника, вы просто не можете видеть линейные источники (все данные отладки все еще работают).

Вы можете «исправить» эту проблему, составив пользовательскую версию Commons HttpClient (не слишком сложно) или просто пропустите идею «шаг в библиотеку». Как общая практика развития, переход в сторонние библиотеки редко дает полезную информацию. Я сделал это, возможно, раз или два за последние десять лет, и ни разу это не приблизило меня к решению дилеммы.

4

Я обнаружил, что иногда, вы указываете директорию, которую вы бы предположить было правильным, а затем все еще заявляет, что он не может найти файл в прикрепленном источнике blah blah.

В эти моменты я понял, что последний элемент пути был «src». Просто удалив этот элемент пути (тем самым указывая на один уровень выше фактического пути, где находится папка «org» или «com»), магически заставляет его работать.

Как-то, Eclipse, кажется, подразумевает этот элемент пути «src», если он присутствует, и если вы включили его в исходный путь, Eclipse захлопывает. Или что-то типа того.

1

Я думаю, проблема в пространстве (или локализованных) символов в пути к исходному архиву. Попробуйте переместить его в другое место с простым путем.