Eclipse PDE: учитывая относительный путь, например /ProjectName/lib/something.jar, как получить полный путь к файловой системе?

Я пытаюсь найти путь к файлу jar, который находится в необработанном пути к классам. getRawClasspath возвращает коллекцию объектов IClasspathEntry. Я могу позвонить по ним в getPath.

Но getPath возвращает нечто странное: IPath, который начинается с имени проекта, например:

/ProjectName/lib/something.jar

Как правильно превратить этот относительный путь в полный путь ОС? ? Сначала я подумал, что могу просто добавить путь к корню рабочей области, но это не сработало, поскольку между рабочей областью и проектом часто бывают промежуточные каталоги.

И вообще, как мне узнать, что делать с IPath, возвращаемым методом? Кажется, я никогда не узнаю, что это за IPath; относительно проекта, относительно рабочего пространства, относительно проекта, но с именем проекта в качестве первого элемента, относительно фазы луны ... Все это сбивает с толку, и документация никогда не помогает - или, по крайней мере, я не не знаю где искать.

ОБНОВЛЕНИЕ

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

Ответ, который гласит: «Если путь начинается с /, это абсолютный путь (относительно рабочей области)» неверен.Проблема в том, что метод getPath в IClasspath возвращает одно из двух: путь, начинающийся с косой черты относительно рабочей области, или IPath, начинающийся с /, который является фактическим путем файловой системы. Да, в один вид засунуты две совершенно разные вещи. Вы получаете вариант файловой системы, когда jar находится за пределами рабочего пространства, и вы получаете «абсолютный» вариант, когда он находится в рабочем пространстве.

Я думаю, что частично ответ заключается в том, что IPath сам по себе представляет собой всего лишь причудливую строку. Вы должны знать, откуда это взялось, чтобы разобраться в этом. Он не несет нужного вида информации, чтобы быть полезным сам по себе.

Итак, как правильно с этим справиться?

5
задан James Moore 25 May 2012 в 05:35
поделиться