答案1
BINFMT_MISC 长期以来一直是 Linux 的一部分。
Unix 长期以来一直允许将任何文件视为可执行文件,只需将其#!/path/to/interpreter
作为文件的第一行并使用chmod +x
将其标记为可执行文件即可。
BINFMT_MISC 方法只是对该理念的轻微扩展,其中不是将解释器名称作为文本嵌入到文件的第一行,而是告诉内核如何识别特定的二进制类型并告诉它在该文件类型上使用什么解释器。
您可以通过检查 /proc/sys/fs/binfmt_misc 是否存在来检查它是否在您的系统上启用:
ls -l /proc/sys/fs/binfmt_misc
如果存在,则其中应该有一个文件,用于支持每种其他可执行文件类型。在我的 Ubuntu 系统上,其中有一个名为的文件,jar
对应于 java。
答案2
在 Ubuntu 20.04 上,我只需获取一个 jar 文件,将其标记为可执行文件,然后只需将 jar 文件名放入 shell 即可运行它。这个 BINFMT 东西似乎已安装并处于活动状态。:-)
$ chmod +x some.jar
$ ./some.jar
这很棒! :-)