请问谁有RMI 的相关资料?急急! JDK的文档中带有RMI的教程,简单易懂,建议学习 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 class 附:完整的RMI远程执行命令代码/******************************************************************************Description: (RMI) Remote Command Execute Author: JetKingLau Email: [email protected] FileName: ExecutePort.java******************************************************************************/package RemoteExecute;public class ExecutePort { public static int PortNumber = 3200; public static String ServerName = "ExecuteServer"; public void ExecutePort() { } public String getHostName(String hostName) { return "//" + hostName + ":" + String.valueOf(PortNumber) + "/" + ServerName; }}/******************************************************************************Description: (RMI) Remote Command Execute Author: JetKingLau Email: [email protected] FileName: ExecuteInterface.java******************************************************************************/package RemoteExecute;import java.io.*;import java.rmi.Remote;import java.rmi.RemoteException;public interface ExecuteInterface extends Remote { public String executeCommand(String remoteCommand) throws RemoteException;}/******************************************************************************Description: (RMI) Remote Command Execute Author: JetKingLau Email: [email protected] FileName: ExecuteImpl.java******************************************************************************/package RemoteExecute;import java.io.*;import java.rmi.*;import java.rmi.server.UnicastRemoteObject;public class ExecuteImpl extends UnicastRemoteObject implements ExecuteInterface { private String name; private ExecutePort executePort = new ExecutePort(); public ExecuteImpl(String s) throws RemoteException{ super(); name = s; } public String executeCommand(String remoteCommand){ ExecutePort executePort = new ExecutePort(); String stringReturn = ""; try { System.out.println(remoteCommand); Process cmd = Runtime.getRuntime().exec(remoteCommand); BufferedReader bufferedReader = new BufferedReader( new InputStreamReader(cmd.getInputStream()), 4096); String stringLine; while((stringLine = bufferedReader.readLine()) != null) { stringReturn = stringReturn + "<br/>" + stringLine; } return stringReturn; } catch(Exception e) { System.out.println(executePort.ServerName + " exception: " + e.getMessage()); e.printStackTrace(); return null; } } public static void main(String argv[]) { ExecutePort executePort = new ExecutePort(); if(System.getSecurityManager() == null) { System.setSecurityManager(new RMISecurityManager()); } try { ExecuteImpl ei = new ExecuteImpl(executePort.ServerName); Naming.rebind(executePort.getHostName("127.0.0.1"), ei); System.out.println("ServerName: " + executePort.ServerName); System.out.println("PortNumber: " + String.valueOf(executePort.PortNumber)); } catch(Exception e) { System.out.println(executePort.ServerName + " exception: " + e.getMessage()); e.printStackTrace(); } }}/******************************************************************************Description: (RMI) Remote Command Execute Author: JetKingLau Email: [email protected] FileName: ExecuteClient.java******************************************************************************/package RemoteExecute;import java.io.*; import java.rmi.*;public class ExecuteClient{ public static void main(String argv[]) { if(argv.length != 2) { System.out.println("Usage: java ExecuteClient machineName remoteCommand"); System.exit(0); } ExecuteClient ec = new ExecuteClient(); System.out.println(ec.executeCommand(argv[0], argv[1])); } public ExecuteClient() { } public String executeCommand(String hostName, String remoteCommand) { ExecutePort executePort = new ExecutePort(); try { ExecuteInterface ei = (ExecuteInterface) Naming.lookup(executePort.getHostName(hostName)); return ei.executeCommand(remoteCommand); } catch(Exception e) { System.err.println(executePort.ServerName + " exception: "+ e.getMessage()); e.printStackTrace(); return null; } }}/******************************************************************************Description: (RMI) Remote Command Execute Author: JetKingLau Email: [email protected] FileName: ExecuteServlet.java******************************************************************************/package RemoteExecute;import java.io.*;import java.rmi.*;import javax.servlet.*;import javax.servlet.http.*;public class ExecuteServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { ExecutePort executePort = new ExecutePort(); response.setContentType("text/html; charset=gb2312"); PrintWriter out = response.getWriter(); String hostName = request.getParameter("HostName"); String cmdString = request.getParameter("CommandString");// out.println("<br/><b>Host Name:</b> " + hostName);// out.println("<br/><b>Remote Command:</b> " + cmdString);// out.println("<br/>"); if( "".equals(hostName) || "".equals(cmdString) ) { return; } try { ExecuteClient ec = new ExecuteClient(); out.println(ec.executeCommand(hostName, cmdString)); } catch(Exception e) { System.err.println(executePort.ServerName + " exception: "+ e.getMessage()); e.printStackTrace(); } return; }}/******************************************************************************Description: (RMI) Remote Command Execute Author: JetKingLau Email: [email protected] FileName: ExecuteServer.policy******************************************************************************/grant { permission java.security.AllPermission "", "";}; { public static void main(String[] args) { System.out.println("Hello World!"); }} <core java>第二卷上的第五章就是讲的RMI,另外可以参考《master EJB2》的后面的附录上的rmi-iiop的 structs2 boolean类型属性 接收 jsp页面 0 1 struts tag 循环和if判断问题 spring3.0依赖包 spring+freemarker使用出错求解 求推荐开源的cms系统,谢谢 Hibernate一对多关联,能查询,但不能联结插入 急!!!如何对基于JDOM解析出的内容进行排序? 求助,Spring 的一个警告, 怎样消除? 我的毕业设计——两个集合图形是否相交 Cocoon2.1.4结合在TOMCAT4.0.6怎么样配? 100分解决structs1.1的表单验证 jbuilder中编译ejb的部署描述在什么地方写?
public static String ServerName = "ExecuteServer"; public void ExecutePort() {
} public String getHostName(String hostName) {
return "//" + hostName + ":" + String.valueOf(PortNumber) + "/" + ServerName;
}
}/******************************************************************************Description: (RMI) Remote Command Execute Author: JetKingLau Email: [email protected] FileName: ExecuteInterface.java******************************************************************************/package RemoteExecute;import java.io.*;
import java.rmi.Remote;
import java.rmi.RemoteException;public interface ExecuteInterface extends Remote {
public String executeCommand(String remoteCommand) throws RemoteException;
}/******************************************************************************Description: (RMI) Remote Command Execute Author: JetKingLau Email: [email protected] FileName: ExecuteImpl.java******************************************************************************/package RemoteExecute;import java.io.*;
import java.rmi.*;
import java.rmi.server.UnicastRemoteObject;public class ExecuteImpl extends UnicastRemoteObject implements ExecuteInterface { private String name;
private ExecutePort executePort = new ExecutePort(); public ExecuteImpl(String s) throws RemoteException{
super();
name = s;
} public String executeCommand(String remoteCommand){ ExecutePort executePort = new ExecutePort();
String stringReturn = "";
try {
System.out.println(remoteCommand);
Process cmd = Runtime.getRuntime().exec(remoteCommand);
BufferedReader bufferedReader = new BufferedReader( new InputStreamReader(cmd.getInputStream()), 4096);
String stringLine; while((stringLine = bufferedReader.readLine()) != null) {
stringReturn = stringReturn + "<br/>" + stringLine;
}
return stringReturn;
}
catch(Exception e) {
System.out.println(executePort.ServerName + " exception: " + e.getMessage());
e.printStackTrace();
return null;
}
} public static void main(String argv[]) {
ExecutePort executePort = new ExecutePort();
if(System.getSecurityManager() == null) {
System.setSecurityManager(new RMISecurityManager());
}
try {
ExecuteImpl ei = new ExecuteImpl(executePort.ServerName);
Naming.rebind(executePort.getHostName("127.0.0.1"), ei);
System.out.println("ServerName: " + executePort.ServerName);
System.out.println("PortNumber: " + String.valueOf(executePort.PortNumber));
}
catch(Exception e) {
System.out.println(executePort.ServerName + " exception: " + e.getMessage());
e.printStackTrace();
}
}}/******************************************************************************Description: (RMI) Remote Command Execute Author: JetKingLau Email: [email protected] FileName: ExecuteClient.java******************************************************************************/package RemoteExecute;import java.io.*;
import java.rmi.*;public class ExecuteClient{
public static void main(String argv[]) {
if(argv.length != 2) {
System.out.println("Usage: java ExecuteClient machineName remoteCommand");
System.exit(0);
}
ExecuteClient ec = new ExecuteClient();
System.out.println(ec.executeCommand(argv[0], argv[1]));
} public ExecuteClient() {
} public String executeCommand(String hostName, String remoteCommand) { ExecutePort executePort = new ExecutePort();
try {
ExecuteInterface ei = (ExecuteInterface) Naming.lookup(executePort.getHostName(hostName));
return ei.executeCommand(remoteCommand);
}
catch(Exception e) {
System.err.println(executePort.ServerName + " exception: "+ e.getMessage());
e.printStackTrace();
return null;
}
}
}/******************************************************************************Description: (RMI) Remote Command Execute Author: JetKingLau Email: [email protected] FileName: ExecuteServlet.java******************************************************************************/package RemoteExecute;import java.io.*;
import java.rmi.*;
import javax.servlet.*;
import javax.servlet.http.*;public class ExecuteServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{ ExecutePort executePort = new ExecutePort();
response.setContentType("text/html; charset=gb2312");
PrintWriter out = response.getWriter(); String hostName = request.getParameter("HostName");
String cmdString = request.getParameter("CommandString");// out.println("<br/><b>Host Name:</b> " + hostName);
// out.println("<br/><b>Remote Command:</b> " + cmdString);
// out.println("<br/>"); if( "".equals(hostName) || "".equals(cmdString) ) {
return;
}
try {
ExecuteClient ec = new ExecuteClient();
out.println(ec.executeCommand(hostName, cmdString));
}
catch(Exception e) {
System.err.println(executePort.ServerName + " exception: "+ e.getMessage());
e.printStackTrace();
}
return;
}
}/******************************************************************************Description: (RMI) Remote Command Execute Author: JetKingLau Email: [email protected] FileName: ExecuteServer.policy******************************************************************************/grant {
permission java.security.AllPermission "", "";
};
{
public static void main(String[] args)
{
System.out.println("Hello World!");
}
}