java远程执行windows命令

realzxs 2009-02-11 03:36:04
需要在java应用系统中远程调用windows平台上的命令,并接收返回信息,怎么实现呢?

注:跟黑客无关

windows平台与java应用系统在同一局域网内,windows平台上不允许安装任何其他软件(允许开启必要的windows服务)
在java应用系统中需要调用windows的命令,比如说查看windows下的硬盘大小,并返回到应用系统中。

怎么实现,高分求助!
...全文
2223 29 打赏 收藏 转发到动态 举报
写回复
用AI写文章
29 条回复
切换为时间正序
请发表友善的回复…
发表回复
大_爱 2012-07-26
  • 打赏
  • 举报
回复
LZ兄弟找到解决方法了吗?
realzxs 2009-03-02
  • 打赏
  • 举报
回复
[Quote=引用 24 楼 zyflys 的回复:]
在linux下有个samba服务 可以和windows进行通讯。通讯是通过连接windows的ipc$来实现的,smbclient这个工具可以显示与windows的通讯,你可以用java来实现。
[/Quote]
多谢提醒,不过暂时没空搞这个了
等我抽空验证一下,再散分
realzxs 2009-03-02
  • 打赏
  • 举报
回复
[Quote=引用 26 楼 mingzhangming 的回复:]
Process process=Runtime.getRuntime().exec("p.exe");
process.getInputStream就得到返回结果,但有的外部命令就返回不了,建议在调用后把结果写在指定文件了,再读取文件就OK了!
[/Quote]
很感谢这位的回帖,不过这很明显需要调用exe文件,也就是windows平台的
我需要是在linux平台下的
其实windows平台下有很好的解决方案(com4j)
宝儿78 2009-02-20
  • 打赏
  • 举报
回复
Process process=Runtime.getRuntime().exec("p.exe");
process.getInputStream就得到返回结果,但有的外部命令就返回不了,建议在调用后把结果写在指定文件了,再读取文件就OK了!
lntasa 2009-02-20
  • 打赏
  • 举报
回复
标记一下
zyflys 2009-02-20
  • 打赏
  • 举报
回复
在linux下有个samba服务 可以和windows进行通讯。通讯是通过连接windows的ipc$来实现的,smbclient这个工具可以显示与windows的通讯,你可以用java来实现。
realzxs 2009-02-16
  • 打赏
  • 举报
回复
现在的困难是被监控的windows主机不允许开启telnet(基本来说,就只能用WMI了)
监控程序肯定是运行在linux平台上
realzxs 2009-02-16
  • 打赏
  • 举报
回复
使用telnet的方法基本已经实现,不过这是针对被监控的unix平台的(unix的telnet一般是都需要开启的),但是windows平台一般的习惯是不能开telnet,所以才要针对windows的默认服务来进行通讯。
难啊
realzxs 2009-02-16
  • 打赏
  • 举报
回复
使用telnet的方法基本已经实现,不过这是针对被监控的unix平台的(unix的telnet一般是都需要开启的),但是windows平台一般的习惯是不能开telnet,所以才要针对windows的默认服务来进行通讯。
难啊
herowach 2009-02-15
  • 打赏
  • 举报
回复
我们的系统是支持WIN和LINUX的,两种系统有没有分开处理就不知道了,但安装包是一个通用的
Linux校园社区 2009-02-15
  • 打赏
  • 举报
回复
如果只是在Windows上,你可以去微软网站下载一个psexec这个exe下来,然后你可以通过这个exe要求远程的机器执行相关的命令并得到返回结果。

psexec.exe \\hostname -u administrator -p password ipconfig


这样你在Java中直接运行上述命令就可以了。
zyflys 2009-02-14
  • 打赏
  • 举报
回复
使用WMI理论上也是可行的 只是使用java通过WMI来实现还没研究过
zyflys 2009-02-14
  • 打赏
  • 举报
回复
如何可以的话在windows系统中开启telnet服务,并通过java的socket连接并执行系统命令。也就是说需要用java实现telnet的客户端,实现应该不难。
realzxs 2009-02-13
  • 打赏
  • 举报
回复
虽然还是没好答案,但可能给俺指明了方向
先谢一个
herowach 2009-02-13
  • 打赏
  • 举报
回复
这块属于设备控制,被控制端应该不需要装PY的运行环境,但服务端肯定是要装的
herowach 2009-02-13
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 realzxs 的回复:]
引用 2 楼 herowach 的回复:
我们这就可以,只要输入远程机器的IP、用户名密码就可以调用那个机器上的命令,原理是JAVA去调用一个python脚本,传命令这事让PY给做了,可惜我看不到这个PY的源码,具体咋弄的我也不知道了。


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

因为这块不是我做的,我只是看到了这个功能,所以具体PY怎么实现的我也不知道,但PY是可以给JAVA返回信息的,访问远程机器成功与否的信息是会返回到JAVA端的,JAVA还要将这个信息显示到界面告诉用户呢
realzxs 2009-02-13
  • 打赏
  • 举报
回复
如果是linux,不知道是否需要什么针对windows的包
realzxs 2009-02-13
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 herowach 的回复:]
引用 10 楼 realzxs 的回复:
引用 2 楼 herowach 的回复:
我们这就可以,只要输入远程机器的IP、用户名密码就可以调用那个机器上的命令,原理是JAVA去调用一个python脚本,传命令这事让PY给做了,可惜我看不到这个PY的源码,具体咋弄的我也不知道了。


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


因为这块不是我做的,我只是看到了这个功能,所以具体PY怎么实现的我也不知道,但PY是可以给JAV…
[/Quote]
再问一句,你们的python是安装在windows还是linux?
East271536394 2009-02-12
  • 打赏
  • 举报
回复
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();
}

}

}


这个还要用到网络程序,自己想下吧..
diggywang 2009-02-12
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 realzxs 的回复:]
楼上的楼上,python脚本调用有两个问题:
1、是不是要再搭建一个python的运行环境?
2、python脚本的返回值怎么取呢
[/Quote]

用jython就可以,python的java实现
加载更多回复(9)

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧