插件x.y.z应该在Java项目之上运行并生成一些Java代码。这段代码需要在构建和运行时插件的jar中提供的类。因此,插件的jar(或安装目录)应该出现在构建类路径中。
插件怎么能找到它自己的jar /安装目录的确切路径,或者就此而言,以便携方式找到一些相关插件的jar路径?
后台是我想创建一个用户可以运行以启用x.y.z的向导。在项目上的性质。应为用户提供有意义的默认值,以便在何处查找所需的运行时功能,并将给定的库添加到构建路径中。
答案 0 :(得分:6)
我们用它来查找班级的位置:
public static URL getLocation(final Class cls) {
final ProtectionDomain pd = cls.getProtectionDomain();
final CodeSource cs = pd.getCodeSource();
return cs.getLocation();
}
不知道它来自哪里。
答案 1 :(得分:3)
提供插件时最可靠的方法是使用org.osgi.framework.Bundle.getEntry(String)
获取jar文件的URL,org.eclipse.core.runtime.FileLocator.toFileURL(URL)
返回文件系统中jar的绝对路径。
然后您可以选择将该位置用于java项目类路径,或将jar复制到java项目工作区。
有关其他示例,请参阅https://stackoverflow.com/a/8337766/713646。
PW