java中通过JDK工具手动压缩JAR包时package路径必须严格对应,否则可能压缩JAR包成功,但执行不了

    java中通过JDK工具手动压缩JAR包,每次都压缩成功,正常生成了.JAR包,但是双击执行时无反应,通过dos环境执行java -jar XX.jar时提示“ Uable to access XX....",花了半天精力想解决这个问题,百度的答案都没有解决,结果第二天一早突然想到一个可能的问题,立马就解决了,原来程序中第一条package resource;很关键,如果有package指令,则除了程序清单manifest中必须指定主程序的package路径外,在执行jar压缩指令时,必须进入包的上级目录执行,然后压包时被压进去的文件都要指定package目录,必须严格对应起来,之前的问题在于要么就是程序清单manifest中没有指定主程序的package路径,要么就是直接进入.class的路径不带文件路径直接执行jar压缩,所以老是压缩成功,却执行不了压缩好的jar文件

例如:

程序中如果第一条有package resource;指令,则程序清单manifest中必须指定以下”resource/“路径

Main-Class: resource/ResourceTest

 

进行JAR压包时:

其中 ”resource“文件夹在”D:\jdk1.8.0_92\CoreJavaBook\v1ch10“路径中,相关的程序文件都是resource这个包中,则先进入”D:\jdk1.8.0_92\CoreJavaBook\v1ch10“路径,然后执行JAR指令时,除了.jar文件,其他所有文件都要指定 ”resource“目录

D:\jdk1.8.0_92\CoreJavaBook\v1ch10>jar cvfm ResourceTest.jarresource/manifest.m
f resource/*.class resource/*.gifresource/*.txt

 

注:系统校验机制不够完善,明明有问题,系统还让压缩成功。如果机制可以进行检验并提醒用户,那这个问题很快就解决了,不致很多时候都要靠人来摸索和解决。这个问题在corejava中关于程序清单manifest.mf的描述中,并没有明确讲清楚主程序的包路径。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值