linux下如何查找jar包内的class

kufish001 2009-04-27 05:43:17
linux下,已知一class的全限定名,如何查找它在哪个jar包里
...全文
1417 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
kufish001 2009-04-29
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 sixufan 的回复:]
用法: jar {ctxui}[vfm0Me] [jar-file] [manifest-file] [entry-point] [-C dir] files ...
选项包括:
-c 创建新的归档文件
-t 列出归档目录
-x 解压缩已归档的指定(或所有)文件
-u 更新现有的归档文件
-v 在标准输出中生成详细输出
-f 指定归档文件名
-m 包含指定清单文件中的清单信息
-e 为捆绑到可执行 jar 文件的独立应用程序
指定应用程序入口点
-0 仅存储;不使用任何 ZIP 压缩
-M 不创建条目的清…
[/Quote]

谢谢,虽然没有给出具体方法,不过也给我了一点提示,那就是可以列出jar包中的class目录,下面我把我在工作闲暇之余研究出来的办法跟大家分享一下。

find . -name "*.jar" | xargs -I arg1 /usr/java14/bin/jar vtf arg1 | sed 's%META-INF/MANIFEST.MF%######%g' | sed -n -e '/######/p' -e '/你要查找的class的名字/p'

在要查找jar的目录下执行以上命令,原理是先把所有jar包中的class名称列出来然后放进管道,然后因为jar包中一般都会有META-INF/MANIFEST.MF这个文件,所以就把这个文件名给替换成不带/的字符,因为/没法当作字符在sed里查找,然后在替换后的管道里查找替换后的字符"######",和你要查找的class的名字,实际上是想通过列出"######"的个数来找jar包。办法是土了点,如果用脚本的话很轻松,不过挺适合没有权限写文件的朋友们,比如说我,不能创建文件,没有FTP,只有一个SSH远程连,呵呵。
sixufan 2009-04-27
  • 打赏
  • 举报
回复
用法: jar {ctxui}[vfm0Me] [jar-file] [manifest-file] [entry-point] [-C dir] files ...
选项包括:
-c 创建新的归档文件
-t 列出归档目录
-x 解压缩已归档的指定(或所有)文件
-u 更新现有的归档文件
-v 在标准输出中生成详细输出
-f 指定归档文件名
-m 包含指定清单文件中的清单信息
-e 为捆绑到可执行 jar 文件的独立应用程序
指定应用程序入口点
-0 仅存储;不使用任何 ZIP 压缩
-M 不创建条目的清单文件
-i 为指定的 jar 文件生成索引信息
-C 更改为指定的目录并包含其中的文件
如果有任何目录文件,则对其进行递归处理。
清单文件名、归档文件名和入口点名的指定顺序
与 "m"、"f" 和 "e" 标志的指定顺序相同。

示例 1:将两个类文件归档到一个名为 classes.jar 的归档文件中:
jar cvf classes.jar Foo.class Bar.class
示例 2:使用现有的清单文件 "mymanifest" 并
将 foo/ 目录中的所有文件归档到 "classes.jar" 中:
jar cvfm classes.jar mymanifest -C foo/ .
kufish001 2009-04-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hairetz 的回复:]
http://www.cjsdn.net/post/view?id=173170&sty=3&bid=7&tpg=1&age=0&ppg=1

Jar Class搜索器 V1.0,英文名: JarClassSearch v1.0
--------------------------------
功能说明:
从指定路径包含的一系列jar包里面,查找指定java Class被包含的具体位置。

[/Quote]

你说的这个工具是在Windows下的吧,我这个是在linux下哦,而且我没有安装软件的权限,只有read的权限,没有任何write的权限。
  • 打赏
  • 举报
回复
http://www.cjsdn.net/post/view?id=173170&sty=3&bid=7&tpg=1&age=0&ppg=1

Jar Class搜索器 V1.0,英文名: JarClassSearch v1.0
--------------------------------
功能说明:
从指定路径包含的一系列jar包里面,查找指定java Class被包含的具体位置。

23,120

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧