jar 命令打包生成的jar文件内部的目录结构

本文探讨了使用jar命令打包时,jar文件内部目录结构为何会包含完整路径的问题。原来,jar文件内的目录结构直接反映了命令中class文件参数的路径。例如,从/Users/myAcount/Downloads/example路径打包,如果不使用相对路径,则解压后的结构会包含完整路径。通过调整命令,可以改变jar包内的目录结构,使其更加简洁。理解这一原理有助于更好地管理和构建jar包。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

可能对大多数人来说都不是问题的一个问题:为什么网上找到的例子jar包解压后里头的文件结构都是类似org/apache/.....等结构,而我自己用jar命令生成的jar文件解压后内部目录总是/Users/myAcount/org/apache/...这样的?

经过几次尝试和上网搜索,慢慢得出结论:原来很简单,jar文件内部的文件结构完全是按命令中的class文件这个参数的路径来的,假设我的class文件在/Users/myAcount/Downloads/example下,如果当前cd是在用户跟目录下则命令为

jar cf example.jar ./Downloads/example/classes*.class

这样jar包解压后的文件结构就是Downloads/example/...跟命令中标红的部分一致,如果命令改成

jar cf example.jar /Downloads/example/classes*.class

则路径会变成/Users/myAcount/Downloads/example/...这样的全绝对路径

如果当前cd到Downloads下,则命令自然应该是

jar cf example.jar ./example/classes*.class

那结果路径就是example/...

所以其实没什么好困扰的,目录结构对应就是最后一个参数的组成,换句话说,这也是由当前cd所在的路径决定的。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值