首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查找any .jar包的依赖关系

查找any .jar包的依赖关系
EN

Stack Overflow用户
提问于 2010-08-31 22:28:35
回答 5查看 2.3K关注 0票数 3

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

代码在那里运行得很好,但是当我将包导出为jars并尝试在另一个环境(例如pax-runner)中使用它们时,我在运行时得到了ClassNotFound异常。这些包安装得很好,没有任何错误。我在equinox上执行命令:"diag bundle-number“,它对每个包都说:”没有未解决的约束“。

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

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-09-03 07:58:56

如果在运行时找到了Import-Package中列出的所有包(以及Require-Bundle中列出的包),您的包就会被解析。如果解析后得到ClassNotFoundException或者NoClassDefFoundError,说明Import-Package的内容是错误的。

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

票数 2
EN

Stack Overflow用户

发布于 2010-08-31 22:35:29

JBoss刚刚发布了一个非常棒的关于依赖项的开源诊断工具:http://jboss.org/tattletale

其中一个功能是通过自省来分析jar文件,以找到所有缺少的依赖项。

票数 2
EN

Stack Overflow用户

发布于 2010-08-31 22:34:10

我曾经做过这样的事情(我通过IKVM交叉编译Java到.NET,但需要Jars之间的依赖关系)我使用JarAnalyzer创建了依赖关系图。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3609982

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档