java执行ping命令
来源:互联网 发布:从零开始学编程 编辑:程序博客网 时间:2024/05/21 09:22
指定要测试的网址,用.properties的文件保存
add1=www.baidu.com
add2=www.sina.com
add3=www.163.com
web.xml如下配置
<!-- 监听指定的类 -->
<listener>
<listener-class>com.gangyi.listener.MyListener</listener-class>
</listener>
MyListener类如下
package com.gangyi.listener;
import java.util.Timer;
import java.util.TimerTask;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import com.gangyi.ping.Ping;
/***
* 服务器启动时进行监听
* @author ChenChao
* @createTime 2011-8-4
*/
public class MyListener implements ServletContextListener {
private Timer timer=null;
@Override
public void contextDestroyed(ServletContextEvent arg0) {
//注销timer
timer.cancel();
}
@Override
public void contextInitialized(ServletContextEvent arg0) {
timer=new Timer(true);
timer.schedule(new TimerTask() {
@Override
public void run() {
//每隔3分钟指行指定方法
Ping.start();
}
},0,180000);
}
}
Ping类如下:
package com.gangyi.ping;
/**
* 用来测试指定网站的连接是否畅通,并将测试的信息写入文本中
* @author ChenChao
* @createTime 2011-8-4
*/
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.LineNumberReader;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Properties;
public class Ping {
//定义要测试的地址
private static String add1;
private static String add2;
private static String add3;
public static void start() {
try {
//解析配置文件得到地址
Properties properties=new Properties();
properties.load(Ping.class.getResourceAsStream("/address.properties"));
add1=properties.get("add1").toString();
add2=properties.get("add2").toString();
add3=properties.get("add3").toString();
String[]address={add1,add2,add3};
//用来存放日志信息
String[]log={"e:\\"+add1+".txt","e:\\"+add2+".txt","e:\\"+add3+".txt"};
if(!new File("e:\\"+add1+".txt").exists()){
File file=new File(log[0]);
file.createNewFile();
File file2=new File(log[1]);
file2.createNewFile();
File file3=new File(log[2]);
file3.createNewFile();
}
for (int j = 0; j < address.length; j++) {
//执行ping指令
Process process = Runtime.getRuntime().exec("Ping " +address[j]);
// 对结果进行解析
InputStreamReader r = new InputStreamReader(process.getInputStream(), "GB2312");
LineNumberReader returnData = new LineNumberReader(r);
String line = "";
FileOutputStream fos=new FileOutputStream(new File(log[j]),true);
fos.write("=========================================".getBytes());
fos.write("\n".getBytes());
fos.write(new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒").format(new Date()).getBytes());
while ((line = returnData.readLine()) != null) {
fos.write(line.getBytes());
fos.write("\n".getBytes());
}
fos.write("=========================================".getBytes());
}
} catch (Exception e) {
e.printStackTrace();
}
}
//本地测试方法
public static void main(String[] args) {
Ping.start();
}
}
add1=www.baidu.com
add2=www.sina.com
add3=www.163.com
web.xml如下配置
<!-- 监听指定的类 -->
<listener>
<listener-class>com.gangyi.listener.MyListener</listener-class>
</listener>
MyListener类如下
package com.gangyi.listener;
import java.util.Timer;
import java.util.TimerTask;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import com.gangyi.ping.Ping;
/***
* 服务器启动时进行监听
* @author ChenChao
* @createTime 2011-8-4
*/
public class MyListener implements ServletContextListener {
private Timer timer=null;
@Override
public void contextDestroyed(ServletContextEvent arg0) {
//注销timer
timer.cancel();
}
@Override
public void contextInitialized(ServletContextEvent arg0) {
timer=new Timer(true);
timer.schedule(new TimerTask() {
@Override
public void run() {
//每隔3分钟指行指定方法
Ping.start();
}
},0,180000);
}
}
Ping类如下:
package com.gangyi.ping;
/**
* 用来测试指定网站的连接是否畅通,并将测试的信息写入文本中
* @author ChenChao
* @createTime 2011-8-4
*/
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.LineNumberReader;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Properties;
public class Ping {
//定义要测试的地址
private static String add1;
private static String add2;
private static String add3;
public static void start() {
try {
//解析配置文件得到地址
Properties properties=new Properties();
properties.load(Ping.class.getResourceAsStream("/address.properties"));
add1=properties.get("add1").toString();
add2=properties.get("add2").toString();
add3=properties.get("add3").toString();
String[]address={add1,add2,add3};
//用来存放日志信息
String[]log={"e:\\"+add1+".txt","e:\\"+add2+".txt","e:\\"+add3+".txt"};
if(!new File("e:\\"+add1+".txt").exists()){
File file=new File(log[0]);
file.createNewFile();
File file2=new File(log[1]);
file2.createNewFile();
File file3=new File(log[2]);
file3.createNewFile();
}
for (int j = 0; j < address.length; j++) {
//执行ping指令
Process process = Runtime.getRuntime().exec("Ping " +address[j]);
// 对结果进行解析
InputStreamReader r = new InputStreamReader(process.getInputStream(), "GB2312");
LineNumberReader returnData = new LineNumberReader(r);
String line = "";
FileOutputStream fos=new FileOutputStream(new File(log[j]),true);
fos.write("=========================================".getBytes());
fos.write("\n".getBytes());
fos.write(new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒").format(new Date()).getBytes());
while ((line = returnData.readLine()) != null) {
fos.write(line.getBytes());
fos.write("\n".getBytes());
}
fos.write("=========================================".getBytes());
}
} catch (Exception e) {
e.printStackTrace();
}
}
//本地测试方法
public static void main(String[] args) {
Ping.start();
}
}
- java执行ping命令
- 连续执行ping命令
- 连续执行ping命令
- linux机器上执行ping命令的java方法
- linux机器上执行ping命令的java方法
- Java定时执行ping命令,当ping不通时发邮件
- ping命令执行过程详解
- ping命令执行过程详解
- ping命令执行过程详解
- ping命令执行过程详解
- ping命令执行过程详解
- ping命令执行过程详解
- Java_代码执行ping命令
- ping命令执行过程详解
- ping命令执行过程详解
- ping命令执行过程一
- ping命令java调用
- java实现ping命令
- POI读取Excel 03/07
- Pingdom:全球排名前1万网站有24.3%使用了Facebook官方插件
- [转]C# GDI+ 简单绘图(一)
- 用NSMutableArray 存储结构体 CLLocationCoordinate2D
- vs2010 包含库头文件,库文件 配置
- java执行ping命令
- ibatis 返回list<String[]>----resultClass="hashMap" 可以实现
- c# is和as的区别
- 查询数据库中所有记录总数不为0的数据表名称
- 随笔十:虚拟存储器
- Sybase PowerDesigner 12通用的破解方法
- Oracle 11g R- 11.2.0.3.0补丁程序
- POJ 2109 水题 加各种数据类型范围
- 利用shell命令操作Memcached