[size=medium]思路就是通过bundleContext来取得资源。
首先,要在对应的插件中先建立一个Activator需要实现BundleActivator接口,
代码[/size]:
[size=medium] 然后再需要查找资源的地方,取得bundleContext,通过bundleContext的getResource方法取得URL类型的resource,代码:[/size]
[size=medium][color=red]注意这里的路径,是从直接写工程文件夹下开始写。[/color][/size]
首先,要在对应的插件中先建立一个Activator需要实现BundleActivator接口,
代码[/size]:
import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;
public class Activator implements BundleActivator {
private static BundleContext bundleContext;
public static BundleContext getBundleContext() {
return bundleContext;
}
public void start(BundleContext context) throws Exception {
Activator.bundleContext = context;
}
public void stop(BundleContext context) throws Exception {
}
}
[size=medium] 然后再需要查找资源的地方,取得bundleContext,通过bundleContext的getResource方法取得URL类型的resource,代码:[/size]
public static InputStream getResourceByContext(String path) {
try {
BundleContext bundleContext = Activator.getBundleContext();
URL resource = bundleContext.getBundle().getResource("/web" + path);
InputStream in = resource.openStream();
if (in == null) {
String msg = "\nNot found \"" + path + "\";";
log.error(msg);
}
return in;
} catch (IOException e) {
e.printStackTrace();
} finally {
}
return null;
}
[size=medium][color=red]注意这里的路径,是从直接写工程文件夹下开始写。[/color][/size]