- ProcessBuilder类执行外部的程序,相对于 Runtime.exec ,它更方便,可以设置环境变量等。这里使用它在windows下读取物理网卡的地址
- package com.kuaff.jdk5package;
- import java.io.IOException;
- import java.io.InputStream;
- import java.util.ArrayList;
- import java.util.List;
- public class ProcessBuilderShow
- {
- public static List getPhysicalAddress()
- {
- Process p = null;
- //物理网卡列表
- List address = new ArrayList();
- try
- {
- //执行ipconfig /all命令
- p = new ProcessBuilder("ipconfig", "/all").start();
- }
- catch (IOException e)
- {
- return address;
- }
- byte[] b = new byte[1024];
- StringBuffer sb = new StringBuffer();
- //读取进程输出值
- InputStream in = p.getInputStream();
- try
- {
- while (in.read(b)>0)
- {
- sb.append(new String(b));
- }
- }
- catch (IOException e1)
- {
- }
- finally
- {
- try
- {
- in.close();
- }
- catch (IOException e2)
- {
- }
- }
- //以下分析输出值,得到物理网卡
- String rtValue = sb.substring(0);
- int i = rtValue.indexOf("Physical Address. . . . . . . . . :");
- while(i>0)
- {
- rtValue = rtValue.substring(i + "Physical Address. . . . . . . . . :".length());
- address.add(rtValue.substring(0,18));
- i = rtValue.indexOf("Physical Address. . . . . . . . . :");
- }
- return address;
- }
- public static void main(String[] args)
- {
- List address = ProcessBuilderShow.getPhysicalAddress();
- for(String add:address)
- {
- System.out.printf("物理网卡地址:%s%n", add);
- }
- }
- } </p>
- <pre name="code" class="java">/**
- * Add one sentence class summary here.
- * Add class description here.
- *
- * @author lxx
- * @version 1.0, 2004-11-16
- */
- public class TestCmd {
- public TestCmd(){}
- /* public void main(String args[]){
- try {
- Process process = Runtime.getRuntime().exec("cmd.exe /c start http://www.csdn.net"); //登录网站
- Process process = Runtime.getRuntime().exec("cmd.exe /c start ping 10.144.98.100"); //调用Ping命令
- }catch (Exception e)
- {
- e.printStackTrace();
- }
- }
- } */
- //在项目下建立一个名为hello的文件夹
- public static void main(String[] args) {
- System.out.println(System.getProperty("user.dir"));
- createFolder("hello");
- }
- private static void createFolder(String folderName) {
- String temp = System.getProperty("user.dir") + java.io.File.separator+ folderName;
- java.io.File f = new java.io.File(temp);
- f.mkdirs();
- }
- }
- 在Java程序中获取当前运行程序的路径
- import java.io.*;
- public class Test {
- public static void main(String[] args) {
- File directory = new File(".");
- try {
- File newPath = new File(directory.getCanonicalPath()+"NewFolder");
- newPath.mkdir();
- }catch(Exception exp)
- {
- exp.printStackTrace();
- }
- }
- }
- //File directory = new File(".");
- //directory.getCanonicalPath();取得当前路径
- 在Jsp页面中调用Ping命令---PingIP.jsp
- <%@ page language="java" contentType="text/html; charset=gb2312" import="java.io.*" %>
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <title>Ping IP测试页面</title>
- </head>
- <body>
- <div align="center">
- <h2>Ping IP测试页面</h2>
- </div>
- <%
- Runtime runtime = Runtime.getRuntime();
- Process process =null;
- String line=null;
- InputStream is =null;
- InputStreamReader isr=null;
- BufferedReader br =null;
- String ip="www.sina.com.cn"; //待Ping的地址
- try
- {
- process =runtime.exec("ping "+ip);
- is = process.getInputStream();
- isr=new InputStreamReader(is);
- br =new BufferedReader(isr);
- out.println("<pre>");
- while( (line = br.readLine()) != null )
- {
- out.println(line);
- out.flush();
- }
- out.println("</pre>");
- is.close();
- isr.close();
- br.close();
- }
- catch(IOException e )
- {
- out.println(e);
- runtime.exit(1);
- }
- %>
- </body>
- </html>
- </pre>
- <p> </p>
-