所以,我的问题很简单(我不够聪明,无法找到答案)
单击文件时,例如blahblahblah.txt
。由于您的默认文本编辑器是textedit.app
,因此计算机是否将应用程序blahblahblah.txt
的文件路径作为参数发送。
对不起,我是新手处理文件的新手。
我之所以问这是因为,如果我在.exe
中包装.jar
文件,我对计算机处理方式感到困惑。
将使用不同的机制,具体取决于操作系统以及您实际在做什么。
双击文件以打开(例如)编辑器时,OS 通常:
- 确定文件的类型(通过其元数据,后缀或某些启发式)
- 查找与文件类型关联的应用程序
- 启动应用程序,将文件的路径名作为参数传递
(详细信息是特定的...但与我认为您的真正询问并不相关。)
但是,当您启动包裹在EXE中的JAR文件时,EXE本身将负责JVM启动。它如何取决于如何生成EXE;即您使用的第三方工具。
无论哪种方式,当您运行包裹JAR的EXE时会发生什么,可能与您(Say)双击文本文件时发生的情况不同。
<。这是高度系统的。通常,您要描述的是使用图形外壳的函数。
一些系统,例如太监,根本没有文件扩展名的概念。扩展名只是文件命名约定。Enuchs图形外壳必须解析文件名才能找到扩展名。
其他操作系统具有文件系统,其中文件扩展名或类型与文件名分开编码。
在Windoze上(确实分别存储文件扩展名)应用程序映射是通过注册表完成的。
在Mac上,有一个映射的启动服务数据库。它比Windoze系统更精致。
在命令行中,事物完全不同。在太监命令行上,"扩展"是毫无意义的。
在其他系统上,有默认扩展。如果您处于Windoze提示并键入
程序
命令解释器在.com,.bat或.exe。
中寻找一个"程序"在VM上,
r程序
使命令解释器寻找program.exe并运行它。或
@file
CAUSSE命令解释器要查找并执行命令文件file.com。
因此,您正在处理两个系统特定变量:
基础文件系统支持文件扩展?
外壳映射文件如何扩展到应用程序。