我正在学习有关 Java RMI 的教程 http://download.oracle.com/javase/tutorial/rmi/TOC.html
然而,当我尝试启动服务器时,我收到以下错误:
计算引擎异常: java.security.AccessControlException: 访问被拒绝 (java.net.SocketPermission 127.0.0.1:1099 connect,resolve) 在 java.security.AccessControlContext.checkPermission(未知来源) 在 java.security.AccessController.checkPermission(未知来源) 在 java.lang.SecurityManager.checkPermission(未知来源) 在 java.lang.SecurityManager.checkConnect(未知来源) 在 java.net.Socket.connect(未知来源) 在 java.net.Socket.connect(未知来源) 在 java.net.Socket.(未知来源) 在 java.net.Socket.(未知来源) 在 sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(未知来源) 在 sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(未知来源) 在 sun.rmi.transport.tcp.TCPEndpoint.newSocket(未知来源) 在 sun.rmi.transport.tcp.TCPChannel.createConnection(未知来源) 在 sun.rmi.transport.tcp.TCPChannel.newConnection(未知来源) 在 sun.rmi.server.UnicastRef.newCall(未知来源) 在 sun.rmi.registry.RegistryImpl_Stub.rebind(未知来源) 在引擎.ComputeEngine.main(ComputeEngine.java:61)
我正在尝试使用以下命令运行:
D:\files\develop\javami>java -cp D:\files\develop\javami;D:\files\webdocs\classes\compute.jar -Djava.rmi.server.codebase=file:/D:/files/webdocs/classes/compute.jar -Djava.rmi.server.hostname=192.168.0.162 -Djava.security.policy=server.policy engine.ComputeEngine
我应该怎么做才能解决这个问题?
最佳答案
问题已解决。
server.policy 文件错误,正确的是:
授予{ 权限 java.net.SocketPermission "*:1024-", "connect,accept"; 权限 java.security.AllPermission; };
关于java - 在 Java 中运行 RMI 应用程序时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6143615/