Нахождение, какие банки содержат файл
В Windows XP я вспоминаю, как можно было использовать Windows Search, чтобы найти, какие банки в директории содержат определенный файл класса. Но в Windows 7 это больше не работает. У меня есть опция поиска, помеченная как "Включить сжатые файлы (ZIP, CAB, ...)", но это, похоже, не помогает. Поиск содержимого файла (который появляется в качестве выбора после неудачного начального поиска) также не работает.
Мне удалось найти файл с помощью следующей команды, но это очень сложно (приходится открывать командную строку в нужном каталоге, вставлять обновленную команду и визуально проверять результаты, которые могут быть очень длинными, если есть много jar-файлов),
for %i in (*.jar) DO %JDKHOME%\bin\jar.exe tf %i | grep myfile
2 ответа
По умолчанию 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-файлах с работой, используя опцию поиска содержимого файла.
Я всегда использую Far Manager http://www.farmanager.com/, у него есть очень гибкая утилита "найти файл", которая может искать и в архивах.