java -d参数 和 policy文件的问题
KG071 2011-10-07 01:41:48 学习RMI,程序中有System.setSecurityManager(new RMISecurityManager());这样的代码,所以我设置了policy文件,文件的内容为:
grant {
permission java.security.AllPermission;
};
然后我在命令行下运行程序:
E:\test\rmi\server>java -Djava.security.policy=RMIpolicy.policy;-Djava.rmi.server.codebase=file:/.\/ UpperImpl
Exception in thread "main" java.security.AccessControlException: access denied (java.net.SocketPermission 127.0.0.1:1099
connect,resolve)
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:374)
at java.security.AccessController.checkPermission(AccessController.java:546)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
at java.lang.SecurityManager.checkConnect(SecurityManager.java:1034)
at java.net.Socket.connect(Socket.java:524)
at java.net.Socket.connect(Socket.java:478)
at java.net.Socket.<init>(Socket.java:375)
at java.net.Socket.<init>(Socket.java:189)
at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirectSocketFactory.java:22)
at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMasterSocketFactory.java:128)
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:595)
at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:198)
at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:184)
at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:322)
at sun.rmi.registry.RegistryImpl_Stub.rebind(Unknown Source)
at java.rmi.Naming.rebind(Naming.java:160)
at UpperImpl.main(UpperImpl.java:17)
因为权限问题报错,我估计是我的policy文件的问题,所以我特意在policy文件里加了一些杂乱的字母,然后再执行,还是报上面的错。肯定是policy文件的问题了。为什么policy文件会无效? -d参数是按;还是空格隔开?我用空格不行 希望有人能帮忙解释下