J'ai toujours pensé que seuls les exécutables sous UNIX/Linux sont des fichiers ELF
- et des scripts Shell. Mais j’ai trouvé qu’il est possible d’utiliser uniquement $ ./file.jar
au lieu de $ Java -jar file.jar
.
Comment les fichiers JAR
- sont-ils spéciaux? Existe-t-il d'autres exemples de ce comportement? Puis-je créer mon propre type de fichier qui ne peut être exécuté que par son nom/chemin?
En effet, Ubuntu prend en charge le module de noyau binfmt_misc
et le type jar
est activé. voir /proc/sys/fs/binfmt_misc/jar
C'est très ancien (depuis le noyau 1.03). Voir plus d'informations ici: https://stackoverflow.com/questions/1667830/running-a-jar-file-without-directly-calling-Java
D'autres exemples sont python et wine, oui, si vous apprenez comment fonctionne binfmt_misc
, vous pouvez également créer vos propres types.