傲博编程知识库--总能找到您想要的

首页 »J2SE 基础类 » c执行dos命令:java如何实现远程执行dos命令!? »正文

c执行dos命令:java如何实现远程执行dos命令!?

来源: 发布时间:星期四, 2008年11月20日 浏览:24次 评论:0
现在在某机器部署的javaprogram要在另外一台windows服务器上执行一条cmd命令,虚心请教傲博网友该怎么实现啊?~~~呼唤大侠~
socket编程啊,不太熟,哈哈,帮小菜顶了.
没看理解啥意思....帮你顶吧~~~
利用socket通信,把写好的批处理传到服务器上,然后执行,但是貌似有难度,只是个思路
我的JDK版本:
java version "1.6.0_04"
Java(TM) SE Runtime Environment (build 1.6.0_04-b12)
Java HotSpot(TM) Client VM (build 10.0-b19, mixed mode, sharing)
小菜看看 Telnet 协议,http://www.cnpaf.net/class/telnet/ 然后使用 Java 自己实现或使用第三方类库.
期待
SOCKAT编程
不会啊 !
socket serversocket,两台电脑都要装java环境
                  File FileName=new File("D:\\sql2000\\SETUP.BAT");
  String str="net stop ServerMgr\n net start ServerMgr>E:\\1.txt";
  WriteFile(str);
  try {
        String command = "cmd.exe /c"+"start D:\\sql2000\\SETUP.BAT";
        Process child = Runtime.getRuntime().exec(command);
  } catch (IOException e)
  {
    System.out.println("文件Error");
  }
socket serversocket
肯定需要在要执行program的机器上搞个服务器program,等待用户远程输入命令,然后再执行,
不过这不就是unix操作系统的原理么?
String command = "cmd.exe /c ipconfig /all";//这里的/c 是什么意思

                Process p = Runtime.getRuntime().exec(command);

可以用socket把执行的Dos命令传到另一台计算机,然后接受到之后执行命令
thinking in java 第四版551页

//: net/mindview/util/OSExecute.java
// Run an operating system command
// and send the output to the console.
package net.mindview.util;
import java.io.*;

public class OSExecute {
  public static void command(String command) {
    boolean err = false;
    try {
      Process process =
        new ProcessBuilder(command.split(" ")).start();
      BufferedReader results = new BufferedReader(
        new InputStreamReader(process.getInputStream()));
      String s;
      while((s = results.readLine())!= null)
        System.out.println(s);
      BufferedReader errors = new BufferedReader(
        new InputStreamReader(process.getErrorStream()));
      // Report errors and return nonzero value
      // to calling process if there are problems:
      while((s = errors.readLine())!= null) {
        System.err.println(s);
        err = true;
      }
    } catch(Exception e) {
      // Compensate for Windows 2000, which throws an
      // exception for the default command line:
      if(!command.startsWith("CMD /C"))
        command("CMD /C " + command);
      else
        throw new RuntimeException(e);
    }
    if(err)
      throw new OSExecuteException("Errors executing " +
        command);
  }
} ///:~


//: net/mindview/util/OSExecuteException.java
package net.mindview.util;

public class OSExecuteException extends RuntimeException {
  public OSExecuteException(String why) { super(why); }
} ///:~
用一个客户端program,将指令传过去就可以了啊
用一个客户端program,将指令传过去就可以了啊

相关文章

读者评论

  • 共0条 分0页

发表评论

  • 昵称:
  • 内容: