RMI连接在本地主机上被拒绝

我正在学习RMI编码,当我运行RMI的服务器端时,我的连接被拒绝。 这是我的服务器主要方法

public static void main(String[] args)throws Exception { Implementation impl=new Implementation(); Naming.rebind("//localhost:2020/RMI", impl); System.out.println("Implementation has been bind to the name RMI and is ready for use"); } 

我相信,实现的代码并不重要,因为它只是实现的接口,将运行的代码。 我得到的例外是这个

 Exception in thread "main" java.rmi.ConnectException: Connection refused to host: localhost; nested exception is: java.net.ConnectException: Connection refused: connect at sun.rmi.transport.tcp.TCPEndpoint.newSocket(Unknown Source) at sun.rmi.transport.tcp.TCPChannel.createConnection(Unknown Source) at sun.rmi.transport.tcp.TCPChannel.newConnection(Unknown Source) at sun.rmi.server.UnicastRef.newCall(Unknown Source) at sun.rmi.registry.RegistryImpl_Stub.rebind(Unknown Source) at java.rmi.Naming.rebind(Unknown Source) at epl362Project.Server.main(Server.java:10) Caused by: java.net.ConnectException: Connection refused: connect at java.net.DualStackPlainSocketImpl.connect0(Native Method) at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source) at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source) at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source) at java.net.AbstractPlainSocketImpl.connect(Unknown Source) at java.net.PlainSocketImpl.connect(Unknown Source) at java.net.SocksSocketImpl.connect(Unknown Source) at java.net.Socket.connect(Unknown Source) at java.net.Socket.connect(Unknown Source) at java.net.Socket.<init>(Unknown Source) at java.net.Socket.<init>(Unknown Source) at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(Unknown Source) at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(Unknown Source) ... 7 more 

我究竟做错了什么? 客户端和服务器端将运行在我的笔记本电脑上,因为这只是一个练习。 我是否错过了某些东西,或者我的代码有什么问题? 请给我答案,除了解释为什么这样,因为我不只是想使它的工作,我试图学习。

**编辑我发现为什么我的代码不工作。 我错过了一行代码说

 LocateRegistry.createRegistry(2020); 

我从其他问题在这里find了stackoverflow。 但是没有任何解释,也没有在网上find一个为什么这个代码是需要RMI正常工作的。 有没有人有解释?

Naming.bind()的目标是RMIregistry。 它必须运行。 它没有运行。 所以你不能连接到它。 所以你有一个ConnectException。