在Linux下Java如何执行远程Windows命令?? 在线等待 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Java环境在Linux下,主要想实现Java监控Windows系统资源,在Windows上很好做,用wmi C#几行代码就搞定了,在Linux上我想通过Java调用wmi,但是不知道如何调用,系统是Linux上的,用C#写个DLL也用不了,后来查找到有个wmic的东西,就是命令行的wmi,我依然不知道如何才能调用。 http://bbs.chinaunix.net/thread-1712730-1-1.html 常用就是三种手段:1、Windows端开启SNMP(简单网络管理协议);Linux端直接通过标准SNMP协议请求系统性能数据;2、Windows端开启Telnet;Linux这边用Java作为客户端连接上去,然后直接远程操作即可;3、Windows端开发一个Java代理,负责收集数据;Linux这边就用Java远程请求该代理执行搜集动作; 1、SNMP有些东西获取不到,比如进程的一些详细信息,Windows的服务,也监控不到。2、Telnet这种方式个人认为不太好操作3、Windows客户端是不装其他程序的,可以安装WMI 作为设计人员来说,大多数事情最终都是个取舍问题对于80%能通过简单方式实现的功能,就用简单方式来做,比如SNMP;对于15%需要通过复杂手段来实现的,不得已就复杂来做,比如Telnet或其它;对于5%需要极高代价才能实现的,不如就别做了。 能通过SNMP方式获取的,一定用SNMP来获取,有些东西获取不到,就只有通过其他方式了,我在网上查到有个JMX这个东西,不知道ldh911对JMX 了解不。 JMX并不复杂,但也别把它想的太神奇了。基本上类似于“3、Windows端开发一个Java代理”。只不过换成Windows端开发一个JMX服务;然后Linux端就可以远程调用了。关于WMI,你参考下这个看看:http://simpleframework.net/blog/v/34604.html 我之前也查到有 J-Interop这个 东西,网上说配置都没成功过。还没来的及仔细研究。 LZ首先要知道这是个远程调用,那么远程机器提供相关的远程连接服务和接口(包括端口)是前提像现成的SNMP或telnet之类的,LZ都不想使用,那么就只能自己在远程机器安装自己的程序来提供相关的远程服务windows提供SWbemServices服务来远程访问wmi,但是linux是否有相关的远程连接该服务的客户端或相关类库(windows就有提供这样的客户端软件和支持,可以运行wbemtest),这些都不能保证,所以如果非要远程调用wmi,那就在windows端做个代理程序负责提供linux远程连接服务和wmi的调用。(其实LZ可以试试telnet之类的远程登陆成功以后能否调用wmi,如果可以的话,可以写个telnet脚本之类的在java端调用) 其实没有更好的办法,我现在还没做这个东西。我估计我会去研究一下,JMX 和 RMI, 100分求java计算两条线段交点的函数 关于Excel,java,utf-8,jxl字符集与输入输出的问题 pdb文件解析 JAVA问题 清达人指教.谢谢了!! jbuilder7中怎么解决鼠标滚动?怎么注释选中的多行,怎么撤销注释的多行(快捷键)? Applet在IE中怎么总是找不到类? 菜鸟提问啦:关于用jdbc.odbc连接数据库的问题。 新手----怎样将ACCESS里的数据倒到ORACLE上? 纪念特别的日子,为了我爱的jeff -- 大派分喽 ^_^ 真是越来越弱呀... String类的replaceAll方法$的含义 编译时出现的一些问题。。急求
1、Windows端开启SNMP(简单网络管理协议);Linux端直接通过标准SNMP协议请求系统性能数据;
2、Windows端开启Telnet;Linux这边用Java作为客户端连接上去,然后直接远程操作即可;
3、Windows端开发一个Java代理,负责收集数据;Linux这边就用Java远程请求该代理执行搜集动作;
2、Telnet这种方式个人认为不太好操作
3、Windows客户端是不装其他程序的,可以安装WMI
对于15%需要通过复杂手段来实现的,不得已就复杂来做,比如Telnet或其它;
对于5%需要极高代价才能实现的,不如就别做了。
能通过SNMP方式获取的,一定用SNMP来获取,有些东西获取不到,就只有通过其他方式了,我在网上查到有个JMX这个东西,不知道ldh911对JMX 了解不。
http://simpleframework.net/blog/v/34604.html
我之前也查到有 J-Interop这个 东西,网上说配置都没成功过。还没来的及仔细研究。
像现成的SNMP或telnet之类的,LZ都不想使用,那么就只能自己在远程机器安装自己的程序来提供相关的远程服务
windows提供SWbemServices服务来远程访问wmi,但是linux是否有相关的远程连接该服务的客户端或相关类库(windows就有提供这样的客户端软件和支持,可以运行wbemtest),这些都不能保证,所以如果非要远程调用wmi,那就在windows端做个代理程序负责提供linux远程连接服务和wmi的调用。(其实LZ可以试试telnet之类的远程登陆成功以后能否调用wmi,如果可以的话,可以写个telnet脚本之类的在java端调用)