Jam*_*ore 5 eclipse eclipse-pde eclipse-plugin
我正在尝试找到原始类路径中的jar文件的路径.getRawClasspath返回IClasspathEntry对象的集合.我可以在那些上调用getPath.
但getPath返回一些奇怪的东西:一个以项目名称开头的IPath,如:
/ProjectName/lib/something.jar
将此相对路径转换为完全合格的OS路径的正确方法是什么?起初我以为我可以添加工作区根目录的路径,但这不起作用,因为工作空间和项目之间经常有中间目录.
更一般地说,我如何知道如何处理方法返回的IPath?好像我从来不知道IPath是什么; 相对于项目,相对于工作区,相对于项目,但项目名称作为第一个元素,相对于月相...这一切都莫名其妙,文档从来没有帮助 - 或者至少我不喜欢不知道在哪里看.
UPDATE
我现在更加困惑.问题仍然是,当你有一个IClasspathEntry时,我仍然不清楚如何将它解析为文件系统路径.
答案是"如果路径以/它是绝对路径(相对于工作空间)开始"是不正确的.问题是IClasspath上的getPath方法返回以下两种情况之一:以斜杠开头的路径相对于工作空间,或者以/是实际文件系统路径开头的IPath.是的,两个完全不同的东西被推入一种类型.当jar在工作空间之外时,你得到文件系统变体,你得到"绝对"它在工作区中的变体.
我认为部分答案是IPath本身只是一个奇特的字符串.你必须知道它来自哪里才能理解它.它没有提供正确的信息以使其本身有用.
那么解决这个问题的正确方法是什么?
试试这个:
IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
IResource res = root.findMember("/ProjectName/lib/something.jar");
System.out.println(res.getLocation().toString());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1423 次 |
| 最近记录: |