错误信息: D:\!J_src\_swing\rmi01>java c15.ptime.PerfectTime java.security.AccessControlException: access denied (java.net.SocketPermission s c resolve) at java.security.AccessControlContext.checkPermission(AccessControlConte xt.java:269) at java.security.AccessController.checkPermission(AccessController.java: 401) at java.lang.SecurityManager.checkPermission(SecurityManager.java:524) at java.lang.SecurityManager.checkConnect(SecurityManager.java:1023) at java.net.InetAddress.getAllByName0(InetAddress.java:1000) at java.net.InetAddress.getAllByName0(InetAddress.java:981) at java.net.InetAddress.getAllByName(InetAddress.java:975) at java.net.InetAddress.getByName(InetAddress.java:889) at java.net.InetSocketAddress.<init>(InetSocketAddress.java:114) at java.net.Socket.<init>(Socket.java:124) 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:562) 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:313) at sun.rmi.registry.RegistryImpl_Stub.bind(Unknown Source) at java.rmi.Naming.bind(Naming.java:111) at c15.ptime.PerfectTime.main(PerfectTime.java:30)
To: javer6(孤舟万里) 非常感谢你得讲解。
可是我只有一台电脑,怎么办啊?
//下面假设你的 c15.ptime 包位于 c:\temp 目录下面,
//服务器
java -classpath c:\temp -Djava.rmi.server.codebase=file:///c:\temp c15.ptime.PerfectTime //客户端
java -classpath c:\temp c15.ptime.PerfectTime DisplayPerfectTime好久不干rmi,可能都错了!!
不过,你的代码好像有问题!!
bind 到2005 端口,你的 rmiregistry 也应该改成
start rmiregistry 2005 啊!顺便说说,jdk1.5 简化了好多!!
start java -classpath c:\temp c15.ptime.PerfectTime DisplayPerfectTime
啊!!
To:hesi726(hesi)能说一下在JDK1.5里面怎么运行吗?谢谢
我想用1.5了 :(
// 怎么回事啊java -classpath d:\myclasspath -D java.rmi.server.codebase=file:///d:\myclasspath c15.ptime.PerfectTime
Exception in thread "main" java.lang.NoClassDefFoundError: java/rmi/server/codebase=file:///d:\myclasspath//------------------------------------------------------------------------------
java -classpath d:\myclasspath c15.ptime.PerfectTime DisplayPerfectTime
Exception in thread "main" java.lang.NoClassDefFoundError: c15/ptime/PerfectTime
D:\!J_src\_swing\rmi01>java c15.ptime.PerfectTime
java.security.AccessControlException: access denied (java.net.SocketPermission s
c resolve)
at java.security.AccessControlContext.checkPermission(AccessControlConte
xt.java:269)
at java.security.AccessController.checkPermission(AccessController.java:
401)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:524)
at java.lang.SecurityManager.checkConnect(SecurityManager.java:1023)
at java.net.InetAddress.getAllByName0(InetAddress.java:1000)
at java.net.InetAddress.getAllByName0(InetAddress.java:981)
at java.net.InetAddress.getAllByName(InetAddress.java:975)
at java.net.InetAddress.getByName(InetAddress.java:889)
at java.net.InetSocketAddress.<init>(InetSocketAddress.java:114)
at java.net.Socket.<init>(Socket.java:124)
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:562)
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:313)
at sun.rmi.registry.RegistryImpl_Stub.bind(Unknown Source)
at java.rmi.Naming.bind(Naming.java:111)
at c15.ptime.PerfectTime.main(PerfectTime.java:30)
我把
System.setSecurityManager(
new RMISecurityManager());
给注释掉了。但是,谁能给解释一下,为什么注释掉以后,就可以正常运行了。