java - 找到一个给定类名的jar文件?

标签 java jar dependencies

这对于 Java 开发人员来说一定是一个非常基本的问题,但是在给定 类名 的情况下找到合适的 jar 文件 的最佳方法是什么?

例如,给定“com.ibm.websphere.security.auth.WSSubject”,你如何找到合适的 jar 文件? (“google”不是我要找的答案!)

java docs不要给出jar文件的任何提示,显然jar文件本身的名称没有提供任何线索。

Java 世界中一定有“搜索本地 jars”或某种“自动解析依赖项”的技巧。理想情况下,我正在寻找“官方”的方式来做到这一点。我碰巧在没有cygwin的Windows机器上。

最佳答案

将此保存为 findclass.sh(或其他),将其放在您的路径上并使其可执行:

#!/bin/sh
find "$1" -name "*.jar" -exec sh -c 'jar -tf {}|grep -H --label {} '$2'' \;

第一个参数是递归搜索的目录,第二个参数是要搜索的正则表达式(通常只是一个简单的类名)。

$ findclass.sh . WSSubject

该脚本依赖于 jar 命令(列出内容)的 -t 选项并 greps 每个目录,并用找到它的 JAR 文件的路径标记任何匹配项。

关于java - 找到一个给定类名的jar文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1500141/

相关文章:

Java POI 非静态方法 getFormat(java.lang.String) 无法从静态上下文中引用

Java - 在mybatis 3中设置参数的jdbcType

Java 反射 - 获取包列表

hadoop - 将Hive中 “select”的输出作为Hadoop jar输入文件的输入

dependencies - 使用不同的启动级别来管理 OSGi 包之间的依赖关系是否合理?

jsp - 从 JSP 引用 js maven 依赖项

java - 解决[org.springframework.http.converter.HttpMessageNotReadableException:Java Spring启动应用程序中缺少必需的请求正文

java - 在Android中访问JAR库中的图像

当我尝试运行我的 jar 文件时,JavaFX 错误 : Could not find or load main class home. main with gradle (IntelliJ)

c++ - 编译时指定g++依赖的位置