解决方案 »

  1.   

    是要通过代码实现jar包内配置文件的修改么?这样似乎不行的。。
    如果是自定义的配置文件,可以考虑不要放到jar包里,直接放到工程目录下或者工程目录下的某个文件夹里。
      

  2.   

    一般jar包中的properties文件直接修改的啊,反正都是用Tomcat或者Weblogic来启动
      

  3.   

    不管什么方式,能实现就好,jar包是第三方的,它将一些配置文件放在包路径下一起打包了。
    我现在的需求是更改其中的部分配置,我通过解压jar包可以修改,修改完之后用zip压缩,再修改文件格式为jar,但使用时会报
    java.lang.SecurityException: SHA1 digest error  for(我修改过的配置文件路径)
      

  4.   

    你想改配置文件,最好还是找给你jar包的人弄.他这么设计,本身就是为了安全着想,不让你去改那个properties文件,Name:xxx(jar包中的class,properties等文件)
     SHA-1-Digest: 5u5bLTDWDEUQ0CPq/AUnlFidG8I=
    你这个SHA1值就是防止jar包文件篡改的,如果你改了,需要重新计算下SHA1值的.但是如何计算SHA1值我就不知了..
      

  5.   

    不管什么方式,能实现就好,jar包是第三方的,它将一些配置文件放在包路径下一起打包了。
    我现在的需求是更改其中的部分配置,我通过解压jar包可以修改,修改完之后用zip压缩,再修改文件格式为jar,但使用时会报
    java.lang.SecurityException: SHA1 digest error  for(我修改过的配置文件路径)
    如果啥方法都行的话,可以吧这个jar下载到本地,用WinRAR打开,手动改了那个配置。
      

  6.   

    本帖最后由 fangmingshijie 于 2014-10-10 17:49:54 编辑
      

  7.   

    不管什么方式,能实现就好,jar包是第三方的,它将一些配置文件放在包路径下一起打包了。
    我现在的需求是更改其中的部分配置,我通过解压jar包可以修改,修改完之后用zip压缩,再修改文件格式为jar,但使用时会报
    java.lang.SecurityException: SHA1 digest error  for(我修改过的配置文件路径)
    如果啥方法都行的话,可以吧这个jar下载到本地,用WinRAR打开,手动改了那个配置。
    额,你看我的描述,我差不多是这么干的,但是再部署这个jar包就报错了。错误内容是:
    java.lang.SecurityException: SHA1 digest error  for(我修改过的配置文件路径)
      

  8.   

    不管什么方式,能实现就好,jar包是第三方的,它将一些配置文件放在包路径下一起打包了。
    我现在的需求是更改其中的部分配置,我通过解压jar包可以修改,修改完之后用zip压缩,再修改文件格式为jar,但使用时会报
    java.lang.SecurityException: SHA1 digest error  for(我修改过的配置文件路径)
    如果啥方法都行的话,可以吧这个jar下载到本地,用WinRAR打开,手动改了那个配置。
    额,你看我的描述,我差不多是这么干的,但是再部署这个jar包就报错了。错误内容是:
    java.lang.SecurityException: SHA1 digest error  for(我修改过的配置文件路径)
    嗯,那,为啥要改给定jar的配置?能否自己定义一下,尽量绕开给定的jar,避免冲突呢?
    (主要是别人的东西,不知道配置会在哪些地方用到,所以改了它的配置可能就影响jar包功能了。。)
      

  9.   

    你这个jar应该是否已经签过名了吧
    如果想改完重新打jar包
    就得删除原来的签名文件,重新创建Jar包和签名
      

  10.   

    不管什么方式,能实现就好,jar包是第三方的,它将一些配置文件放在包路径下一起打包了。
    我现在的需求是更改其中的部分配置,我通过解压jar包可以修改,修改完之后用zip压缩,再修改文件格式为jar,但使用时会报
    java.lang.SecurityException: SHA1 digest error  for(我修改过的配置文件路径)
    如果啥方法都行的话,可以吧这个jar下载到本地,用WinRAR打开,手动改了那个配置。
    额,你看我的描述,我差不多是这么干的,但是再部署这个jar包就报错了。错误内容是:
    java.lang.SecurityException: SHA1 digest error  for(我修改过的配置文件路径)
    嗯,那,为啥要改给定jar的配置?能否自己定义一下,尽量绕开给定的jar,避免冲突呢?
    (主要是别人的东西,不知道配置会在哪些地方用到,所以改了它的配置可能就影响jar包功能了。。)
    是的,这个jar包封装了一些国际化配置文件,我想修改其中的部分配置。jar包不开源的。
      

  11.   

    谢谢,你的回答很有帮助。
    如果我想重新给jar包签名的话要怎么做呢?会不会重新签名之后通不过验证?对数字签名了解的比较少,希望能有一些更具体的建议,3Q。
      

  12.   

    反正篡改了文件就不能再保留签名相关的文件内容了,删除掉它们重新打包就可以了。
    另外,你可以反编译代码观察它取参数的方式是否唯一,如果还有其它与优先级相关的途径,我们可以改动优先级比它高的设置,比如,如果它读取这个properties 当默认值,同时还检测是否有命令行的 -D... 参数的话(System.getProperty("..."))我们就不必去改动它的  properties 文件啦。
      

  13.   

    这个jar包是一个web应用的部分,我试过删除签名文件重新打包,打包之后整个应用都无法访问了。
      

  14.   

    或者,这个问题可以换成如何修改带有数字签名的jar包?jar包数字签名有什么作用?
      

  15.   

    这个jar包是一个web应用的部分,我试过删除签名文件重新打包,打包之后整个应用都无法访问了。
    既然无法用了,证明肯定还是要签名的,卤煮可以重新进行签名再试试如何给jar包数字签名
    这个要保证你彻底删除原来的签名相关文件
    再说说这个签名的作用
    1.jar包数字签名可以防止恶意篡改
    2.为了使Applet或者Java Web Start程序能够访问客户端本地资源,需要对Applet或者JWS程序jar包进行数字签名,之后客户端打开Applet或者JWS程序的时候会提示是否允许该程序访问本地资源,用户如果要用你的程序,当然只能选择OK了。这样你的程序就能按照某种访问权限来访问客户机的本地资源了。
      

  16.   

    java.lang.SecurityException: SHA1 digest error  for就是为了防止Jar包被修改的。