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

java– 为什么我能直接从bash执行JAR?,第1张

概述我是一个长期的Java人员,并且知道在Jar中的MANIFEST.MF文件中引用的主类运行JAR的方法很简单:java -jar theJar.jar我正在使用它来启动Fabric3服务器(包含在标准发行版中的bin / server.jar中).我注意到当我从分发tarball解压缩它时,它被标记为可执行文件.一时兴起,我试过了./server.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执行的二进制格式,也包括一些用户定义的格式,并有足够的指令来运行它们. 总结

以上是内存溢出为你收集整理的java – 为什么我能直接从bash执行JAR?全部内容,希望文章能够帮你解决java – 为什么我能直接从bash执行JAR?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1047102.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存