Когда я ищу приложения, использующие Spotlight, верхние записи часто являются файлами JAR. Это раздражает. Можно ли изменить Spotlight, чтобы файлы JAR не считались приложениями?
3 ответа
Я хотел бы сделать то же самое, но я думаю, что ответ "это невозможно" или, по крайней мере, "было бы рискованно пытаться".
Вот что я обнаружил до сих пор.
Связать файлы JAR с каким-либо другим приложением?
Я начал с предположения, что Spotlight делает вывод, что JAR-файлы являются добрыми:application, потому что JAR-файлы по умолчанию связаны с Jar Launcher.app. Возможно, если мы сможем удалить эту связь, тогда Spotlight перестанет индексировать JAR-файлы как приложения.
Это можно сделать стандартным способом в Finder. Просмотрите файл JAR в Finder, просмотрите информацию, выберите другое приложение в разделе "Открыть с помощью", нажмите "Изменить все". Я попробовал это, и у меня не было изменений в результатах Spotlight, однако я не пытался перестроить свой индекс Spotlight.
Мне это не нравится, так как я не хочу, чтобы Archive Utility ассоциировался с файлами JAR, и у меня нет другого приложения, которое я бы предпочел связать. Это привело меня к ...
Удалить ассоциацию для файлов JAR с Jar Launcher?
В этой статье рассказывается, как удалить файловую ассоциацию. Это только отчасти правильно. Он работает для удаления ассоциации, которую вы ранее добавили вручную. Оказывается, бесполезно удалять связь, исходящую из системы. Я попробовал ссылочное приложение [RCDefaultApp] [], которое, как говорится в статье, может отключить любую связь. Оказывается, приложение просто использует обходной путь. Он "отключает" ассоциации файлов путем создания новой ассоциации с фиктивным приложением, а не путем удаления фактической ассоциации. Это ничем не отличается от создания собственного ничего не делающего приложения и связывания его с файлами .jar.
- RCDefaultApp Связанный, есть этот ответ на вопрос, где Mac OS X хранит ассоциации файлов. Ответ с наивысшим рейтингом верен только частично. Значения по умолчанию, на которые он ссылается, являются вашими собственными "пользовательскими" дополнениями или переопределениями системных "значений по умолчанию". Опять же, самое большее, что вы могли бы сделать, это добавить альтернативную ассоциацию.
Где Jar Launcher.app связан с файлами JAR?
Некоторые из этих статей ссылаются на утилиту командной строки lsregister
(часть того, как перестроить ассоциации Launch Services). Запустите это:
/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Versions/Current/Support/lsregister -dump
И вы получите большой дамп конфигураций Launch Services. Включая эти соответствующие части:
bundle id: 48
path: /System/Library/CoreServices/CoreTypes.bundle
name: CoreTypes
identifier: com.apple.coretypes (0x800000ff)
...
--------------------------------------------------------
type id: 2224
uti: com.sun.java-archive
description: Java archive
flags: exported active core apple-internal trusted
icon:
conforms to: public.zip-archive, public.executable
tags: .jar, application/java-archive
...
--------------------------------------------------------------------------------
bundle id: 21264
path: /System/Library/CoreServices/Jar Launcher.app
name: Jar Launcher
...
library items:
...
--------------------------------------------------------
claim id: 25284
name: Java JAR file
rank: Default
roles: Viewer
flags: apple-default apple-internal relative-icon-path
icon: Contents/Resources/JAR.icns
bindings: com.sun.java-archive, .jar
Что для меня говорит о нескольких вещах:
- Ассоциация Jar Launcher.app по умолчанию происходит из /System /Library /CoreServices /Jar Launcher.app, а не из какого-либо общесистемного файла plist или аналогичного. Там может быть возможность обезьянить там, чтобы разорвать связь. Я был бы обеспокоен, что это может быть отменено с любым обновлением программного обеспечения, которое обновляет Jar Launcher
- Независимо от Jar Launcher, вышеприведенный бит
conforms to: public.zip-archive, public.executable
заставляет меня поверить, что я ошибался в связи с ассоциацией Jar Launcher, связанной с тем, как Spotlight индексирует файлы JAR. Я интерпретирую вывод как «JAR-файлы - это тип ядра, который считается архивом и приложениями»
Мне действительно неудобно ковыряться с /System/Library/CoreServices/CoreTypes.bundle, но может показаться, что именно это необходимо для изменения типа "архива Java", удалив «public.executable» из "соответствует". Я бы положил деньги на то, что именно этим и пользуется Spotlight при индексации файлов JAR и обработке их как вида: приложение.
Как разработчик Java, вы знаете, что не все файлы JAR являются приложениями. Более сложный индексатор может проверить манифест внутри JAR. Но это только исправит Spotlight. Возможно, это ошибка OS X, из-за которой Finder рассматривает все файлы JAR как приложения, позволяя вам использовать Command-O и пытаться запустить их через Jar Launcher. Не зная больше о Launch Services, это похоже на ограничение механизма, ориентированного на расширение файлов, здесь. Облом.
Файлы Jar часто приходят из сокращенного набора каталогов. В моем случае большинство jar-файлов находились в "/Applications/Eclipse/plugins". Итак, в «Системных настройках»> «Spotlight»> «Privacy», я только что запретил Spotlight искать в этом конкретном месте. Теперь это работает как шарм :)
Я думаю, что вы должны фильтровать поиск в центре внимания.
Системные настройки >> Прожектор, в результате поиска отметьте "Приложение". надеюсь, что это работает.
Я хотел бы посоветовать вам использовать окно быстрого поиска Google . это позволяет вам искать данные на вашем компьютере и в Интернете. Я думаю, что это более мощный, чем прожектор.