java – 为什么我能直接从bash执行JAR?

前端之家收集整理的这篇文章主要介绍了java – 为什么我能直接从bash执行JAR?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我是一个长期的Java人员,并且知道在Jar中的MANIFEST.MF文件中引用的主类运行JAR的方法很简单:

java -jar theJar.jar

我正在使用它来启动Fabric3服务器(包含在标准发行版中的bin / server.jar中).我注意到当我从分发tarball解压缩它时,它被标记为可执行文件.一时兴起,我试过了

./server.jar

从我的bash命令行(Ubuntu 10.10中的bash版本4.1.5),并且看,服务器启动就像我输入了正常的java -jar …命令一样. JAR的结构类似于普通的JAR;我做了一个头,没有#!命令在前几个字节中,所以bash不应该神奇地知道用它启动一个Java VM,对吗?或者这个版本的bash是否能够正确启动具有适当清单的JAR?询问心灵想知道……

最佳答案
这根本不是bash的特征.如果您正在运行linux(因为您已经标记了),那么当您尝试执行程序时,可能会使用binfmt_misc内核模块,这会产生一些魔力.基本上它的作用是它扩展了linux可以从elf执行的二进制格式,也包括一些用户定义的格式,并有足够的指令来运行它们.
原文链接:https://www.f2er.com/linux/440412.html

猜你在找的Linux相关文章