比如应用程序中有如下一句:
    String dir = System.getProperty( "user.home" );
如果jar没有签名,就会报错如下:
 java.security.AccessControlException: access denied (java.util.PropertyPermission user.home read)请问应该怎样签名才会不报错呢?希望给出详细的签名步骤

解决方案 »

  1.   

    http://www.zdnet.com.cn/developer/code/story/0,2000081534,39129461-1,00.htm
      

  2.   

    你的安全文件要修改(java.policy)要对这个签名grant访问系统属性的权限
      

  3.   

    晕,签名不就是为了让应用程序有权限吗?
    是改哪里的java.policy?
    如果是客户端的,那可就没办法改了!
      

  4.   

    我的用户目录下的.java.policy如下:
    keystore "C:\Documents and Settings\shen\.keystore", "JKS";grant signedBy "webstart" {
      permission java.security.AllPermission, signedBy "webstart";
    };
      

  5.   

    当然是修改 jdk1.5.0_06\jre\lib\security下面的这个或者你指定别的安全文件
      

  6.   

    楼上的大哥,这样就没什么用了,请问你怎么可能去修改用户客户端的jre的安全文件呢?
    本来签名就是为了解决这个问题的,但是不知道怎么没有用呢
      

  7.   

    你虽然给你的jar签了名但是客户的安全文件里面没有对你的许可,怎么会给你权限呢签名就是让别人知道你是谁在知道你是谁之后,然后再根据policy分配权限给你的程序你当然不能修改客户的安全文件
      

  8.   

    自己解决了,原来在jnlp文件中还要加上下面的一段:
    <security> 
      <all-permissions/> 
    </security>