gpt4 book ai didi

java - this.getClass().getResource ("xyz.class") 在 OSGi 环境中不返回 DIR PATH

转载 作者:行者123 更新时间:2023-11-30 09:44:17 25 4
gpt4 key购买 nike

我的应用程序依赖于一些 SDK jar。此 SDK 在其 API 中广泛使用了 this.getClass().getResource("xyz.class") 方法。

现在,我基于这些 jar 开发了 bundle,并在 OSGi 环境中运行它们。但是,在 OSGi 环境中 this.getClass().getResource("xyz.class") 代码行返回一些到 xyz.class 的包路径,而预计它应该使用 jar:// 返回绝对 DIR 路径(就像在非 OSGi 环境中一样)。

问题是如何完成这项工作。我需要指向可以存在于另一个包中的依赖 jar 中的类的 DIR PATH?

最佳答案

你不能。 OSGi 抽象了包内容的位置。假设所有资源 URL 都在文件系统上是对类加载器 API 的滥用。过去已经完成的事实并不能成为违反抽象的借口。

也就是说,Eclipse Equinox 框架实现确实提供了一种特定于实现的方式。参见 org.eclipse.core.runtime.FileLocator.toFileURL(URL) .

关于java - this.getClass().getResource ("xyz.class") 在 OSGi 环境中不返回 DIR PATH,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7982496/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com