`
liudaoru
  • 浏览: 1579120 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

利用Java调用可执行命令[整理]

    博客分类:
  • java
阅读更多
讲述process:http://lavasoft.blog.51cto.com/62575/15599

From: http://java.chinaitlab.com/JDK/27511.html

这个例子使用了J2SE5.0的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);   }   }   }

/**
 * 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>

 

分享到:
评论

相关推荐

    java生成exe用命令[整理].pdf

    Java程序可以被转换成.exe可...总结一下,Java程序生成.exe的替代方案是创建可执行JAR文件,利用JRE的javaw.exe执行。这种方法简单且保留了Java的跨平台性。对于需要更本地化体验的用户,可以借助第三方工具进行封装。

    Java基础整理

    ### Java基础知识点整理 #### 第一章 搭建开发环境 **1.1 配置Java环境** 在配置Java开发环境之前,首先需要下载并安装JDK(Java Development Kit)。JDK是Java语言的核心组件,包含了Java运行时环境(JRE)及编译...

    达内Java_笔记整理

    学习如何使用JDBC连接Oracle数据库,执行SQL查询,处理结果集,对于开发基于数据库的应用程序至关重要。 #### Hibernate Hibernate是一个强大的ORM(对象关系映射)框架,用于将Java对象映射到关系型数据库中的表。...

    图文识别_java图文识别_java文字识别_

    在IT行业中,文本识别,尤其是图像中的文字识别(OCR,Optical Character Recognition)是一项关键的技术。...而"java -jar"命令的使用则展示了Java应用程序的便捷性,使得开发者和用户都能方便地利用这些技术。

    java各知识点详细总结(毕向东笔记整理).doc

    【Java基础知识】 Java是一种由Sun Microsystems公司(后被甲骨文公司收购)开发的面向对象的编程语言,由James Gosling等人于...通过深入学习和实践,开发者可以充分利用Java的强大功能来创建高效、可靠的软件系统。

    开发Java要点整理.pdf

    Java是一种广泛使用的面向对象的编程语言,以其可移植性、开源、安全性、健壮性和多线程能力而闻名。在开发Java应用时,有几点关键的要素需要掌握: 1. **源文件结构**:一个Java源文件(.java)中只能有一个`...

    JAVA设计模式整理(有部分参考代码)

    Java设计模式是面向对象编程中的重要概念,它是一种在特定情境下解决常见问题的经验总结,为软件开发提供了可复用的解决方案。这个压缩包“Java设计模式”包含了对Java编程中23种经典设计模式的详细梳理和示例代码,...

    java就业培训教程(个人整理)

    - **1.5 有效利用Java的文档帮助**: - **javadoc命令**:自动生成HTML格式的API文档。 - **JavaDoc注释**:按照特定格式书写,方便生成文档。 - **1.6 JVM(虚拟机)的运行过程**: - **加载**:读取.class文件...

    基于SNMP和Java的网络拓扑发现

    此外,该方法使用了Java语言加以描述和实现,充分利用Java语言的可移植性和跨平台等良好特性。 #### 相关协议及规范 ##### SNMP协议 SNMP(Simple Network Management Protocol,简单网络管理协议)是TCP/IP协议...

    java开发常见漏洞及处理说明整理.pdf

    在本系统中,通过一个专用的过滤器,系统能够在初始化时调用并阻止可执行程序文件的上传,保护了系统的安全。 综上所述,Java Web开发人员应时刻关注这些安全问题,采取有效的预防措施,确保系统在提供服务的同时,...

    Java Redis 学习笔记 Markdown+PDF 格式分享

    - Redis是一种内存数据结构存储系统,可作为数据库、缓存和消息中间件使用。 - 它支持多种数据结构,如字符串、哈希、列表、集合和有序集合。 - Redis提供了丰富的命令,可以方便地进行数据操作。 2. **Java与...

    51CTO下载-韩顺平java从入门到精通视频教程(全94讲)学习笔记整理(齐全)

    3. **执行**:使用 `java Hello` 命令运行编译后的程序。 ### 配置 JDK 为了开发 Java 程序,需要安装并配置 JDK(Java Development Kit)。 1. **下载 JDK**:从 Oracle 官网下载合适的 JDK 版本。 2. **安装 ...

    Java学习笔记-个人整理的

    {1.14.1}Java的打包命令}{44}{subsection.1.14.1} {2}Everything is an Object }{45}{chapter.2} {2.1}类与对象}{45}{section.2.1} {2.1.1}构造方法}{45}{subsection.2.1.1} {2.1.2}Java变量类型}{47}{...

    vim下的java开发插件vjde

    vjde提供了代码格式化功能,可以通过命令对Java代码进行整理,保持代码风格的一致性。这有助于提高代码的可读性,并符合团队的编码规范。 5. **跳转到定义**: 在`autoload`和`plugin`目录中的脚本支持在代码中...

    整理后java开发全套达内学习笔记(含练习)

    可使用java.io.InputStreamReader 例: import java.io.InputStreamReader; import java.io.BufferedReader; class n{ public static void main(String[] args){ System.out.println("请输入一列文字,包括空格...

    Jabref和Zotero使用笔记1

    虽然Jabref基于Java开发,但其最新版本已内置Java运行环境,无需额外配置。同样,Zotero作为一个Firefox扩展,可直接从在线数据库抓取文献信息。 **Jabref制作.bib文献数据库** 1. **利用Jabref制作.bib文件** - ...

    Redis、Spring、RabbitMQ、Java线程、Mybatis、HashMap、JVM、MySQL相关问题的实例代码

    理解JVM内存模型(堆、栈、方法区等)、垃圾收集机制(如标记-清除、复制、标记-整理和CMS等算法)以及性能调优(如JVM参数调整、监控工具如JConsole的使用)对于提升Java应用性能至关重要。 MySQL是一款关系型...

    面经整理.pdf

    2. JRE 是 Java Runtime Environment 的缩写,是运行已编译 Java 程序所需的所有内容的集合,包括 Java 虚拟机(JVM),Java 类库,java 命令和其他的一些基础构件。 3. JVM 是 Java 虚拟机,是运行 Java 字节码的...

Global site tag (gtag.js) - Google Analytics