É possível remover arquivos JAR da lista de aplicativos no Spotlight?

7

Quando procuro por aplicativos usando o Spotlight, as entradas superiores geralmente são arquivos JAR. Isso é chato. É possível alterar o Spotlight para que os arquivos JAR não sejam considerados aplicativos?

    
por Jay Stramel 08.03.2010 / 03:16

3 respostas

7

Eu gostaria de fazer o mesmo, mas acho que a resposta é "não é possível" ou pelo menos "seria arriscado tentar".

Aqui está o que eu descobri até agora.

Associar arquivos JAR a algum outro aplicativo?

Comecei supondo que o Spotlight está inferindo que os arquivos JAR são gentis: aplicativo porque os arquivos JAR estão associados ao Jar Launcher.app por padrão. Talvez, se pudermos remover essa associação, o Spotlight pare de indexar os arquivos JAR como aplicativos.

Isso pode ser feito da maneira padrão no Finder. Visualize um arquivo JAR no Finder, visualize informações, selecione um aplicativo diferente em "Abrir com", clique em "Alterar tudo". Eu tentei isso e não tive nenhuma alteração nos resultados do Spotlight, no entanto, não tentei reconstruir meu índice do Spotlight.

Não gosto disso, pois não quero o Archive Utility associado a arquivos JAR, nem tenho outro aplicativo que prefiro associar. Isso me levou a ...

Remover associação de arquivos JAR com o Jar Launcher?

Este artigo pretende dizer-lhe como remover uma associação de arquivos . Está apenas parcialmente correto. Ele funciona para remover uma associação adicionada anteriormente manualmente. Acontece que não é bom para remover uma associação que vem do sistema. Eu tentei o aplicativo referenciado, [RCDefaultApp] [], que o artigo diz que pode desabilitar qualquer associação. Acontece que o aplicativo usa apenas um kludge / workaround. Ele "desativa" associações de arquivos criando uma nova associação a um aplicativo simulado, não removendo a associação real. Isso não é diferente de criar seu próprio aplicativo do-nothing e associá-lo a arquivos .jar.

Onde está o Jar Launcher.app associado aos arquivos JAR?

Alguns desses artigos fazem referência ao utilitário de linha de comando lsregister (parte de como reconstruir as associações dos Serviços de Lançamento). Execute isto:

/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Versions/Current/Support/lsregister -dump

E você obterá um grande despejo das configurações do Launch Services. Incluindo estas partes relevantes:

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

O que para mim diz algumas coisas:

  • A associação padrão do Jar Launcher.app vem de / System / Library / CoreServices / Jar Launcher.app ao contrário de algum sistema arquivo plist largo ou similar. Pode ser possível brincar lá dentro para quebrar a associação. Eu ficaria preocupado que isso pudesse ser desfeito Atualização de Software que atualiza o Jar Launcher
  • Independente do Jar Launcher, o bit acima de conforms to: public.zip-archive, public.executable leva-me a acreditar que eu estava errado sobre a associação de Jar Launcher ter nada a ver com a forma como O Spotlight indexa arquivos JAR. Eu interpreto a saída para significar "arquivos JAR são um tipo de núcleo que são considerados para ser arquivos e aplicativos "

Eu me sinto muito desconfortável /System/Library/CoreServices/CoreTypes.bundle, mas parece que é o que é necessário para alterar o tipo "arquivo Java", removendo "public.executable" de "está em conformidade com". Eu colocaria meu dinheiro que é isso que O Spotlight está sendo usado ao indexar arquivos JAR e tratá-los como tipo: aplicação.

Como desenvolvedor Java, você sabe que nem todos os arquivos JAR são aplicativos. UMA Um indexador mais sofisticado poderia examinar o manifesto dentro do JAR. Mas isso só consertaria o Spotlight. Indiscutivelmente é um bug do OS X que o Finder trata todos Arquivos JAR como aplicativos, permitindo que você os ordene e tente para executá-los via Jar Launcher. Sem saber mais sobre o Launch Services, que parece ser uma limitação do mecanismo centralizado na extensão de arquivo em trabalho aqui. Que pena.

    
por 26.05.2010 / 00:03
4

Os arquivos jar geralmente vêm de conjuntos reduzidos de diretórios. No meu caso, a maioria dos arquivos jar estava em "/ Applications / Eclipse / plugins". Então, em Preferências do Sistema > Spotlight > Privacidade, eu apenas evitei que o Spotlight pesquisasse neste local em particular. Agora, funciona como um encanto:)

    
por 19.06.2010 / 07:02
0

Acho que você precisa filtrar a pesquisa em destaque.

Preferências do Sistema > > Spotlight, no resultado da pesquisa, marca de soltar para "Aplicativo". Espero que isso funcione.

Eu gostaria de aconselhar o uso da Caixa de pesquisa rápida do Google . Ele permite que você pesquise dados no seu computador e na web. Eu acho que é mais poderoso que o holofote.

    
por 08.03.2010 / 05:52