Как это возможно, что я могу выполнить файл JAR из оболочки?

Я всегда думал, что только исполняемые файлы в UNIX / Linux являются ELF -файлами и сценариями оболочки. Но я обнаружил, что можно использовать только $ ./file.jar вместо $ java -jar file.jar.

Чем отличаются JAR -файлы? Есть ли другие примеры такого поведения? Могу ли я создать свой собственный тип файла, который может быть выполнен только по его имени / пути?

2
задан 16 May 2015 в 23:04

1 ответ

Это связано с тем, что ubuntu поддерживает модуль ядра binfmt_misc, а тип jar включен. см. /proc/sys/fs/binfmt_misc/jar

Это очень старая версия (начиная с ядра 1.03). См. Дополнительную информацию здесь: https://stackoverflow.com/questions/1667830/running-a-jar-file-without-directly-calling-java

Другие примеры: python и wine Да, если вы узнаете, как работает binfmt_misc, вы также можете создавать свои собственные типы.

0
ответ дан 16 May 2015 в 23:04

Другие вопросы по тегам:

Похожие вопросы: