2016-12-17 15 views
0

所以,我的問題很簡單(我不夠聰明,找到答案)打開文件時發送給應用程序的內容是什麼?

當你點擊一個文件,如blahblahblah.txt。由於您的默認文本編輯器是textedit.app例如,計算機是否將應用程序blahblahblah.txt的文件路徑作爲參數發送。

對不起,我新來處理文件。

我問這個問題的原因是因爲,如果我在.exe內打包一個.jar文件,我很困惑計算機如何處理這個問題。

回答

1

將使用不同的機制,具體取決於操作系統以及您實際執行的操作。

當您在文件雙擊(說)編輯器打開它,操作系統將通常

  • (通過它的元數據,後綴或啓發式)確定文件的類型
  • 查找與該文件類型
  • 啓動該應用程序相關聯的應用,使所述文件的路徑名作爲參數

(細節是特定於操作系統的,但與我認爲你確實無關)

但是,當啓動一個包裝在EXE中的JAR文件時,EXE本身將負責啓動JVM。它如何實現將取決於EXE如何生成;即您使用的是第三方工具。

無論哪種方式,當您運行包裝JAR的EXE時會發生什麼,可能與您在文本文件上雙擊時發生的情況有所不同

0

這是高度系統特定的。一般來說,你所描述的是正在使用的圖形化外殼的功能。

一些系統,例如太監,根本沒有文件擴展的概念。擴展只是文件命名約定。 Enuchs圖形shell必須解析文件名才能找到擴展名。

其他操作系統具有文件擴展名或類型與文件名分開編碼的文件系統。

在Windoze上(它確實存儲文件擴展名)應用程序映射是通過註冊表完成的。

在Mac上,有一個啓動服務數據庫來完成映射。它比Windoze系統更精細。

在命令行中,情況完全不同。在太監的命令行中,「擴展」是毫無意義的。

在其他系統上,有默認擴展名。如果你是在Windoze提示符,鍵入

程序

命令解釋尋找一個「節目」帶有.com,.bat和.exe文件。

在VMS,

řPROGRAM

導致命令解釋器以尋找PROGRAM.EXE並運行它。或

@file

喀斯命令解釋器來查找並執行命令文件file.com。

因此,你處理兩個系統的具體變量:

  1. 是否底層文件系統支持的文件擴展名?

  2. shell如何將文件擴展名映射到應用程序。

相關問題