interface:
package rmi;
import java.rmi.Remote;
import java.rmi.RemoteException;
public interface PerfectTimeI extends Remote {
public abstract String getHelloWorld(String name) throws RemoteException;
}
impl:
package rmi.impl;
import java.rmi.RemoteException;
import rmi.PerfectTimeI;
public class PerfectTimeImpl implements PerfectTimeI {
public String getHelloWorld(String name) throws RemoteException
{
return name+", hello world!";
}
}
server:
package server;
import java.rmi.RMISecurityManager;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
import java.rmi.server.UnicastRemoteObject;
import rmi.PerfectTimeI;
import rmi.impl.PerfectTimeImpl;
public class Start_rmi {
public static void main(String args[]) {
System.out.println("");
System.setSecurityManager(new RMISecurityManager());
try {
PerfectTimeImpl pt = new PerfectTimeImpl();
PerfectTimeI per = (PerfectTimeI) UnicastRemoteObject.exportObject(
pt, 0);
Registry registry = LocateRegistry.getRegistry();
registry.bind("PerfectTimeI_lookup", per);
System.out.println("-----Ready to do time ");
} catch (Exception e) {
System.out.println(e.getLocalizedMessage());
e.printStackTrace();
}
}
}
安全的文件名:
rmi.policy
grant {
permission java.security.AllPermission "", "";
};
在VM argvments:加client,和server两个端都要加上
-Djava.security.policy=file:/D:/guanliangqi/workspace/demo/bin/rmi.policy -Xms128m -Xmx256m
注意在CLASSPAHT中加入本工程的路径:D:/zhangxiao/workspace/demo/bin
1.先起动文件 start.bat 内容:
start rmiregistry
2.running server端
3.running client端