Java Eclipse插件:在向项目添加自定义特性时,将jar添加到类路径

Java Eclipse插件:在向项目添加自定义特性时,将jar添加到类路径,java,eclipse,eclipse-plugin,Java,Eclipse,Eclipse Plugin,我目前正在开发一个Eclipse插件,我有点迷路了 我有一个自定义的属性,当用户添加这个属性时,我想在用户项目的类路径中添加一个.jar(我想在我的属性的configure()方法中更新项目的类路径) 我就是不知道怎么做。。。我想我明白了,我必须将这个.jar“映射”到一个IClasspathEntry,然后将其添加到我的IJavaProject中。问题是如何在我的插件中清晰地包含这个jar,以及如何将它“映射”到IClasspathEntry(该.jar当前位于我插件项目根目录下的lib文件夹

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

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

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

提前感谢您抽出时间


Valentin

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


关于如何编写类路径容器,可以使用各种资源,包括。

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

IClasspathEntry jar=JavaCore.newLibraryEntry(新路径(jarPath),null,null)

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

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


谢谢!我还读到,从这个罐子制作插件是一个很好的实践。你认为呢?根据我的经验,如果你希望jar被其他插件使用,而不是被项目的类路径使用,那么你只想将其打包为插件。