我的程序 用到第三方包thirdparty.jar 我把thirdparty.jar 包里的一个class文件反编译, 加了一个方法, 我现在想重新打一个jar 包, 但打出的包 明显比原来要小, 而且程序不能正常引用我用的打包命令是 jar  cvf thirdpart.jar  -C ./thirdpart/ . 不知道是什么问题

解决方案 »

  1.   

    假设你的包在 D:\thirdpart 
    那就 D:\jar cvf thirdpart.jar thirdpart
    试一下!
      

  2.   

    试了, 重新打的包还是比原来的小 ,原来的是41892kb ,新打的是36569kb, 还是有部分类不能正常访问,
      

  3.   

    楼主这种做法没弄过,
    不过改了一个class,那其他用到这个class的class会不会受影响呢?
      

  4.   

    我只是加了一个方法而已, 把原来类的一个私有变量,提供了一个get 方法 对其它类应该没有影响
      

  5.   

    用winrar打开jar文件,把你改过的java文件编译后的class直接覆盖原来jar文件里的对应文件
      

  6.   

    楼上说的对解压jar文件,将需要改动的.class反编并进行修改,完成后编译得到.class
    用winrar打开原jar文件,把你改过的.class添加进jar文件中覆盖原来的.class文件,试试……
      

  7.   

    对啊
    我是用winrar打开jar文件,把你改过的java文件编译后的class直接覆盖原来jar文件里的对应文件
    覆盖了以后,我重新再打包打成jar包打出的包有问题, 程序不能正常访问.
    我用 D:\jar cvf thirdparty.jar thirdparty 生成 thirdparty.jar文件, 我把我生成的jar文件解开发现比原来的class 多了一层目录, 原来的是com ,但我是 thirdparty 和META-INF 目录, thirdparty 进去才是原来的com目录 .不知道怎么办
      

  8.   

    to  windy_beijin(windy)那你这样吧!假设D:\thirdparty  那你就进到这个目录里面打包吧? 
    D:\thirdparty >jar cvf thirdparty.jar  *
      

  9.   

    把正常的jar解压,不做任何改动,再打包看看有没有问题?大小?能否引用等。
      

  10.   

    把正常的jar解压,不做任何改动,再打包看 
    已经有问题了,包变小了,程序不能正常使用了, 这说明这个jar包被加密了吗?不能正常使用, 我看一下class 文件大小没有变,有几个配置文件没有了,不知道为什么.
      我打算继承那个类了,幸好不是私有变量.