2012-03-04 95 views
0

我正在盯着学习java中的RMI,我正在使用Netbeans 7.0.1。我创建了一个基本的接口使用netbeans的基本RMI

package helloclass; 
import java.rmi.*; 

public interface HelloInterface extends Remote 
{ 
    public String hello() throws RemoteException; 

} 

这是一个实现该接口

package helloclass; 
import java.rmi.*; 
import java.rmi.server.UnicastRemoteObject; 


public class HelloClass extends UnicastRemoteObject implements HelloInterface 
{ 
    private String message; 
    public HelloClass() throws RemoteException{}//constructor throwing RemoteException 

    public String hello() throws RemoteException //method throwing RemoteException 
    { 
     return "Saying hello"; 
    } 

    public static void main(String[] args) 
    { 



    } 
} 

在我的理解我现在需要建立这两个类,然后运行在命令提示符下rmic命令的类。

如何在命令提示符下使用netbeans?运行此rmic命令。 我一直在尝试转到项目属性,然后在运行后的VM选项中输入rmic,然后指定HelloClass.class所在的目录,但似乎无法找到该类。

+0

早上好为谁?也许是晚上在这里,你怎么知道的:)? – Juvanis 2012-03-04 09:42:52

+0

这可能是你想要的:http://docs.oracle.com/javase/tutorial/rmi/implementing.html – luketorjussen 2012-03-04 09:45:00

回答

2

从Java 5的,没有必要使用rmic命令生成存根,他们将动态生成的,请仔细检查this

但是,如果你还希望支持在早期版本上运行的客户端,运行从编译类的基目录(在你的情况下,包含“helloclass”目录的目录),并使用类的限定名称命令,例如:​​

+0

只要你在super() - ing/exporting时引用一个端口号,就是这样。如果使用没有port参数的super()/ exportObject()重载之一,则它们被限制为构造“rmic”生成的存根,正如在UnicastRemoteObject的Javadoc序言中所讨论的。 – EJP 2012-03-05 05:53:39