gpt4 book ai didi

java - 找出任何 .jar 包的依赖项

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:57:00 28 4
gpt4 key购买 nike

我正在使用 Eclipse 开发 OSGi 包。我使用 Eclipse OSGi 运行时配置测试代码。

代码在那里工作正常,但是当我将包导出为 jars 并尝试在另一个环境(例如 pax-runner)中使用它们时,我在运行时遇到 ClassNotFound 异常。 bundle 安装正常,没有错误。我在春分点执行命令:“diag bundle-number”,它说:“没有 Unresolved 约束”对于每个包。

我想知道是否有工具/方法可以知道,对于给定的 .jar 包,它是否需要任何外部库,这在 manifest.mf 中没有描述。

最佳答案

如果在运行时找到 Import-Package 中列出的所有包(以及 Require-Bundle 中列出的包),您的包将被解析。如果解析后出现ClassNotFoundExceptionNoClassDefFoundError,说明Import-Package的内容有误。

看看 Bnd tool by Peter Kriens .这会对从您的类编译的字节码执行静态检查以发现确切的依赖关系,并为您生成 Import-Package 语句。一般来说,如果你使用 Bnd,你永远不会看到 ClassNotFound/NoClassDefFound,除非按名称动态加载类,例如使用 Class.forName()

关于java - 找出任何 .jar 包的依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3609982/

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