查找哪些 jar 包含某个文件

查找哪些 jar 包含某个文件

在 Windows XP 中,我记得可以使用 Windows Search 来查找目录中哪些 jar 文件包含特定的类文件。但在 Windows 7 上,这似乎不再起作用。我已将搜索选项选中为“包括压缩文件(ZIP、CAB 等)”,但这似乎没有帮助。搜索文件内容(在初始搜索失败后显示为选项)似乎也不起作用。

我能够使用以下命令找到该文件,但这很麻烦(必须在所需的目录中打开命令提示符,粘贴更新的命令,并目视检查结果,如果有很多 jar,结果可能会很长)。

for %i in (*.jar) DO %JDKHOME%\bin\jar.exe tf %i | grep myfile

答案1

默认情况下,Windows 7 不会将 .jar 视为可以打开的 zip 文件,因此不会枚举其内容。 您可以使用以下注册表添加项来修复此问题:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\.jar\PersistentHandler]
@="{3B224B11-9363-407e-850F-C9E1FFACD8FB}"

将其粘贴到文本文件中并保存为 fix.reg,然后打开它并同意将其添加到注册表中。

编辑 :每台机器的 GUID 都是唯一的。相反:

打开注册表编辑器,导航到该项HKEY_CLASSES_ROOT\.zip\PersistentHandler并复制其中的值(Default)

然后转到HKEY_CLASSES_ROOT\.jar,添加一个新键PersistentHandler,并将复制的 GUID 粘贴到(Default)值中。

然后在资源管理器中使用搜索文件内容选项在 jar 文件中进行搜索。

答案2

我总是使用 Far Managerhttp://www.farmanager.com/,它有一个非常灵活的实用程序“查找文件”,也可以在档案中进行搜索。

相关内容