【问题标题】:Eclipse plugin : add jar to classpath when adding custom nature to a projectEclipse 插件:向项目添加自定义性质时将 jar 添加到类路径
【发布时间】:2012-10-11 03:04:53
【问题描述】:

我目前正在开发一个 Eclipse 插件,我有点迷茫......

我有一个自定义性质,我想在用户添加这个性质时将.jar 添加到用户项目的类路径中(我想在我的性质configure() 方法中更新项目的类路径)。

我只是不知道该怎么做...我想我明白我必须将此.jar“映射”到一个IClasspathEntry,然后我可以将其添加到我的IJavaProject。问题是如何在我的插件中干净地包含这个 jar,以及如何将它“映射”到 IClasspathEntry(.jar 当前位于我的插件项目根目录的 lib 文件夹中)

提前感谢您的宝贵时间!

瓦伦丁

【问题讨论】:

    标签: java eclipse eclipse-plugin


    【解决方案1】:

    首先,如何将其映射到类路径条目:

    IClasspathEntry jar = JavaCore.newLibraryEntry(new Path(jarPath), null, null)

    然后您可以将此 IClasspathEntry 添加到项目现有类路径的末尾并使用 IJavaProject 中的 get/setRawClasspath 方法进行设置:

    http://help.eclipse.org/galileo/index.jsp?topic=/org.eclipse.jdt.doc.isv/reference/api/org/eclipse/jdt/core/IJavaProject.html

    将此 jar 保存在您的 lib 目录中很好,但您可能需要确保您的插件在安装时解压缩(而不是作为 .jar 保存在 /plugins 目录中),否则此 jar 将无法访问到项目。您可以使用 FileLocator 类找到此 jar 的路径:

    http://help.eclipse.org/helios/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Freference%2Fapi%2Forg%2Feclipse%2Fcore%2Fruntime%2FFileLocator.html

    【讨论】:

    • 谢谢!我还读到用这个 jar 制作插件是一个好习惯。你怎么看?
    • 根据我的经验,如果你希望它被其他插件使用——而不是项目的类路径,你只想将 jar 打包为插件。
    【解决方案2】:

    您需要编写一个 IClasspathContainer,这是您提供的可以在运行时解析具体类路径条目的代码。

    各种资源可用于如何编写类路径容器,包括this tutorial

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多