題 是否可以從Spotlight中的應用程序列表中刪除JAR文件?


當我在使用Spotlight尋找應用程序時,頂級條目通常是JAR文件。這很煩人。是否可以更改Spotlight以使JAR文件不被視為應用程序?


7
2018-03-08 02:16


起源


我也從未發現如何做到這一點。但是,我開始使用Alfred而不是Spotlight(Alfred使用Spotlight索引)。 Alfred過濾掉了JAR文件。 LaunchBar是一個競爭對手,也是如此。 - toolbear74


答案:


我也想這樣做,但我認為答案是“這是不可能的”,或者至少“嘗試”會有風險“。

這是我到目前為止所發現的。

將JAR文件關聯到其他一些應用程序?

我開始假設Spotlight推斷JAR文件是友好的:應用程序,因為JAR文件默認與Jar Launcher.app關聯。也許如果我們可以刪除該關聯,那麼Spotlight將停止將JAR文件索引為應用程序。

這可以在Finder中以標準方式完成。在Finder中查看JAR文件,查看信息,在“打開方式”下選擇其他應用程序,然後單擊“全部更改”。我試過這個並沒有改變Spotlight結果,但我沒有嘗試重建我的Spotlight索引。

我不喜歡這個,因為我不希望存檔實用程序與JAR文件關聯,也沒有我想要關聯的另一個應用程序。這導致我......

使用Jar Launcher刪除JAR文件的關聯?

本文 聲稱要告訴你 如何刪除文件關聯。這只是部分正確。它可以刪除您之前手動添加的關聯。事實證明,刪除來自系統的關聯是沒有用的。我嘗試了引用的應用程序[RCDefaultApp] [],文章說這可以禁用任何關聯。原來應用程序只使用kludge /變通方法。它通過創建與虛擬應用程序的新關聯來“禁用”文件關聯,而不是通過刪除實際關聯。這與創建自己的無操作應用程序並將其與.jar文件關聯沒有什麼不同。

Jar Launcher.app與JAR文件關聯在哪裡?

這些文章中的一些參考了 lsregister 命令行實用程序(如何重建啟動服務的關聯的一部分)。運行這個:

/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的更多信息, 這似乎是文件擴展中心機制的限制 在這里工作遊民。


7
2018-05-25 22:03



抱歉故意破壞鏈接。我的低代表和垃圾郵件過濾器合謀阻止了豐富的答案。如果有高代表的人可以糾正它,那就太好了。否則,當我更有信譽時,我會自己糾正。 - toolbear74


Jar文件通常來自減少的目錄集。就我而言,大多數jar文件都在“/ Applications / Eclipse / plugins”中。因此,在“系統偏好設置”>“Spotlight”>“隱私”中,我剛剛阻止Spotlight搜索此特定位置。 現在,它就像一個魅力:)


4
2018-06-19 05:02





我想你要在聚光燈下過濾搜索。

系統偏好設置>> Spotlight,在搜索結果中,“應用程序”的刪除標記。希望這有效。

我很樂意建議使用 Google快速搜索框 。它允許您在計算機和網絡上搜索數據。我認為它比聚光燈更強大。


0
2018-03-08 04:52



根據我的個人經驗,如果在Finder中將jar作為普通jar文件可見,則此建議將不起作用。但是,始終可以將整個文件夾從Finder拖到Spotlight首選項中的“隱私”選項卡上。此選項卡中列出的文件夾將從索引中排除。 - Uwe Honekamp
我想要顯示應用程序,我只是不希望jar文件顯示為應用程序。作為一名Java開發人員,我的系統中有很多jar文件,它們幾乎總是第一個結果。 - Jay Stramel