配置一下安全文件!
在jre\lib\security中的java.policy文件中配置一下安全文件!
或者在当前目录写一个配置文件!例如java.policy
然后用java  -Djava.secutiry.policy=java.policy **这种方式来运行!
看看我的blog,blog.csdn.net/zhutouzip

解决方案 »

  1.   

    配置安全文件,使你的包可以访问你在classes下的文件。安全文件内容,例:
    grant codebase "file:./jars/actions.jar"
    {
       
        permission java.io.FilePermission 
    "./work/engine/pool", "read, write, delete";
       
    };
    actions.jar包中的类就有访问"./work/engine/pool”中文件的权限。
      

  2.   

    我设了policy,运行参数也加了,也改过java.policy了,还是不行啊异常如下:D:\Followme\rmitest\src>java  -cp ./ server.HelloServer
    java.security.AccessControlException: access denied (java.net.SocketPermission 1
    27.0.0.1:1099 connect,resolve)
    java.security.AccessControlException: access denied (java.net.SocketPermission 1
    27.0.0.1:1099 connect,resolve)
            at java.security.AccessControlContext.checkPermission(AccessControlConte
    xt.java:264)
            at java.security.AccessController.checkPermission(AccessController.java:
    427)
            at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
            at java.lang.SecurityManager.checkConnect(SecurityManager.java:1034)
            at java.net.Socket.connect(Socket.java:501)
            at java.net.Socket.connect(Socket.java:457)
            at java.net.Socket.<init>(Socket.java:365)
            at java.net.Socket.<init>(Socket.java:178)
            at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirect
    SocketFactory.java:22)
            at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMaster
    SocketFactory.java:128)
            at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:569)
            at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:185
    )
            at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:171)
            at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:306)
            at sun.rmi.registry.RegistryImpl_Stub.rebind(Unknown Source)
            at java.rmi.Naming.rebind(Naming.java:160)
            at server.HelloServer.main(HelloServer.java:44)
      

  3.   

    java.policy中设置socket连接权限了吗?
    例:
    permission java.net.SocketPermission 
    "127.0.0.1", "connect, resolve";
      

  4.   

    参数没加上吧A
    `
    java -Djava.security.policy=yourFileName.policy server.HelloServer
      

  5.   

    先去掉
    System.setSecurityManager(new RMISecurityManager());
    试试
      

  6.   

    大哥们谢谢了,其实我也出了同样的问题,就是把System.setSecurityManager(new RMISecurityManager());去了,就没事了,可是这个到底是干什么的呢,为什么去了就行了。如果去了这个策略文件还其作用吗?我现在一直用的是start rmiregistry,我也写了策略文件一直不知道放那,我还以为要和java.policy放到一个目录下呢,原来放到当前目录下就可以了,对巴。大哥们别闲小弟费时,多多只点一下我好吗