需要在java应用系统中远程调用windows平台上的命令,并接收返回信息,怎么实现呢?注:跟黑客无关windows平台与java应用系统在同一局域网内,windows平台上不允许安装任何其他软件(允许开启必要的windows服务)
在java应用系统中需要调用windows的命令,比如说查看windows下的硬盘大小,并返回到应用系统中。怎么实现,高分求助!

解决方案 »

  1.   

    可以通过IPC$来连接你的windows系统并执行命令。
      

  2.   

    我们这就可以,只要输入远程机器的IP、用户名密码就可以调用那个机器上的命令,原理是JAVA去调用一个python脚本,传命令这事让PY给做了,可惜我看不到这个PY的源码,具体咋弄的我也不知道了。
      

  3.   

    最新消息,有人建议我用WMI实现,但具体方法不详
    大家再讨论一下?
      

  4.   

    楼上的楼上,python脚本调用有两个问题:
    1、是不是要再搭建一个python的运行环境?
    2、python脚本的返回值怎么取呢
      

  5.   


    用jython就可以,python的java实现
      

  6.   

    package com.dos;public class DosTest{

    public static void main(String [] args){
    try{
    Process process=Runtime.getRuntime().exec("p.exe");
    process.waitFor();
    System.out.println("DOS Sucess");
    }catch(Exception e){
    e.printStackTrace();
    }

    }} 
    这个还要用到网络程序,自己想下吧..
      

  7.   

    楼上的兄弟,看你的代码,似乎是调用本地的一个exe文件?
    如果是在linux平台那应该就不行了吧?
      

  8.   

    楼主也只要求Windows而已
    如果只是在Windows上,你可以去微软网站下载一个psexec这个exe下来,然后你可以通过这个exe要求远程的机器执行相关的命令并得到返回结果。psexec.exe \\hostname -u administrator -p password ipconfig
    这样你在Java中直接运行上述命令就可以了。
      

  9.   

    Java中就可以Process process=Runtime.getRuntime().exec(cmd); 并process.getInputStream来得到返回结果
      

  10.   


    不知道这个python脚本是怎么运行呢?
    能不能在详细一点信息?
      

  11.   

    不好意思啊,没写清楚,java系统是装在linux下的
      

  12.   


    因为这块不是我做的,我只是看到了这个功能,所以具体PY怎么实现的我也不知道,但PY是可以给JAVA返回信息的,访问远程机器成功与否的信息是会返回到JAVA端的,JAVA还要将这个信息显示到界面告诉用户呢
      

  13.   

    再问一句,你们的python是安装在windows还是linux?
      

  14.   

    如果是linux,不知道是否需要什么针对windows的包
      

  15.   

    如何可以的话在windows系统中开启telnet服务,并通过java的socket连接并执行系统命令。也就是说需要用java实现telnet的客户端,实现应该不难。
      

  16.   

    使用WMI理论上也是可行的 只是使用java通过WMI来实现还没研究过
      

  17.   

    我们的系统是支持WIN和LINUX的,两种系统有没有分开处理就不知道了,但安装包是一个通用的
      

  18.   

    如果只是在Windows上,你可以去微软网站下载一个psexec这个exe下来,然后你可以通过这个exe要求远程的机器执行相关的命令并得到返回结果。psexec.exe \\hostname -u administrator -p password ipconfig
    这样你在Java中直接运行上述命令就可以了。
      

  19.   

    现在的困难是被监控的windows主机不允许开启telnet(基本来说,就只能用WMI了)
    监控程序肯定是运行在linux平台上
      

  20.   

    使用telnet的方法基本已经实现,不过这是针对被监控的unix平台的(unix的telnet一般是都需要开启的),但是windows平台一般的习惯是不能开telnet,所以才要针对windows的默认服务来进行通讯。
    难啊
      

  21.   

    使用telnet的方法基本已经实现,不过这是针对被监控的unix平台的(unix的telnet一般是都需要开启的),但是windows平台一般的习惯是不能开telnet,所以才要针对windows的默认服务来进行通讯。
    难啊
      

  22.   

    在linux下有个samba服务 可以和windows进行通讯。通讯是通过连接windows的ipc$来实现的,smbclient这个工具可以显示与windows的通讯,你可以用java来实现。
      

  23.   

    Process process=Runtime.getRuntime().exec("p.exe"); 
    process.getInputStream就得到返回结果,但有的外部命令就返回不了,建议在调用后把结果写在指定文件了,再读取文件就OK了!
      

  24.   

    很感谢这位的回帖,不过这很明显需要调用exe文件,也就是windows平台的
    我需要是在linux平台下的
    其实windows平台下有很好的解决方案(com4j)