我在一个小型 OSGI 项目中遇到了一些问题。在其中一个包中,我以编程方式安装并启动了另一个以前未安装的包。
尽管如此,当我在 Eclipse 中运行项目时,ClassNotFoundException
会在执行包中跳转。
我相信这是因为 Eclipse 会使用指向 dev.properties 文件的 -dev 参数(开发模式)自动启动项目,在该文件中它指定了构建每个包的 bin 文件夹。显然这个由 Eclipse 创建的 dev.properties 文件不包括我稍后要安装的包。
该项目在 Eclipse 之外运行良好,并且 jar 是正确的,但是当我在 Eclipse 中运行它时,ClassNotFoundException 会跳转。发生这种情况是因为当我在开发模式下启动 eclipse 时,会创建一个 dev.properties 文件来增强框架的类路径。但是,当我想安装新包时,当新事件发生时 dev.properties 不会更新,而且 Eclipse 也不允许我使用自定义的 dev.properties 文件,因此框架无法从该新包中加载类.
有什么方法可以使用自定义的 dev.properties 或更改任何可以使其在 eclipse 中工作的东西?
这是代码的一个小示例:
public void charge(String location){
try {
System.out.println("Entró");
bundle2= bundleContext.installBundle(location);
System.out.println("Instalado");
bundle2.start();
System.out.println("Activado");
} catch (BundleException e) {
e.printStackTrace();
}
}