我的应用程序依赖于一些SDK jar。本SDK在其api中广泛使用了this.getClass().getResource("xyz.class")
方法。
this.getClass().getResource("xyz.class")
代码行返回一些bundle路径到xyz.class
,而它应该返回jar://
的绝对DIR路径(就像它在非OSGi环境中所做的那样)。
问题是如何得到这项工作。我需要的DIR路径类,可以存在于一个依赖的jar存在于另一个bundle?
你不能。OSGi抽象了包内容的位置。假设所有资源url都在文件系统上是对类装入器API的滥用。过去有过这样做的事实不能作为违反抽象的事实的借口。
也就是说,Eclipse Equinox框架实现确实提供了一种特定于实现的方式。看到org.eclipse.core.runtime.FileLocator.toFileURL (URL) .