`
ynpanhong
  • 浏览: 5000 次
  • 性别: Icon_minigender_1
  • 来自: 云南
文章分类
社区版块
存档分类
最新评论

java中执行Windows或Unix命令

阅读更多

package com.nantian.itbms;

/**
 * 执行windows 命令或unix shell命令
 * @author panhong
 *
 */
public class WinUnixShell {

 public static void main(String[] args0) {
   String cmd="ping www.163.com";
  // String cmd="ipconfig";
  //String cmd = "ping 192.168.0.1";
  // String cmd="ipconfig";
  String result;
  try {
   result = exec(cmd);
   System.out.println("返回:\r\n" + result);
  } catch (Exception e) {
   System.out.println("执行出错:\r\n" + e.getMessage());
  }

 }

 /**
  * 执行window cmd或unix shell命令,如ipconfig
  *
  * @param youCmd
  * @return 执行命令状态

  * @throws Exception
  */
 public static String exec(String youCmd) throws Exception {
  String msg = null;
  if (youCmd == null || youCmd.length() < 1) {
   throw new Exception("请输入有效命令行命令");
  }

  try {
   hostInfo hostInfo = new hostInfo();
   String osName = hostInfo.getsysTYpe();
   String[] cmd = new String[3];
   if (("Windows 2000").equalsIgnoreCase(osName)
     || "Windows XP".equalsIgnoreCase(osName)) {
    cmd[0] = "cmd.exe";
    cmd[1] = "/C";
    cmd[2] = youCmd;
   } else if (osName.equals("Windows 95")) {
    cmd[0] = "command.com";
    cmd[1] = "/C";
    cmd[2] = youCmd;
   }
   if(osName.indexOf("unix")!=-1){ //unix操作系统
    cmd[0] = "ls";
    cmd[1] = "/C";
    cmd[2] = youCmd;
   }

    System.out.println("cmd:\r\n" + cmd[0] + " " + cmd[1] + " " +
    cmd[2]);
   Runtime rt = Runtime.getRuntime();
   Process proc = rt.exec(cmd);
   InputStreamPipe errorGobbler = new InputStreamPipe(proc
     .getErrorStream(), "ERROR");
   InputStreamPipe outputGobbler = new InputStreamPipe(proc
     .getInputStream(), "OUTPUT");
   errorGobbler.start();
   outputGobbler.start();

   int exitVal = proc.waitFor();// 等待事情干完,返回值0表示正确返回
   if (exitVal != 0) {
    msg = "失败";
    throw new Exception(errorGobbler.getOutputMsg()
      + "(异常退出值exitVal=" + exitVal + ")");
   } else {
    msg = outputGobbler.getOutputMsg();//返回命令执行结果
   }
  } catch (Exception e) {
   throw new Exception(e.getMessage());
  }

  return msg;
 }
}

分享到:
评论

相关推荐

    java 调用doc命令

    这个方法允许Java程序在运行时执行外部程序或命令。例如,如果我们要在CMD中打开一个.doc文件,可以这样做: ```java String command = "wordpad.exe path_to_your_file.doc"; try { Process p = Runtime....

    unix和windows文件格式互相转化

    批处理文件是Windows系统中的脚本文件,可以执行一系列命令。在 "ChangeToDos.bat" 中,它可能包含了像 `find /v /c "" &lt; file &gt; newfile` 这样的命令,通过查找空行并替换来将LF转换为CRLF。相反, "ChangeToUnix....

    Java JNI 接口在Windows和Unix上的实现

    这两个参数是JNI函数中固定存在的,用于执行与Java对象相关的操作。 总的来说,Java JNI接口提供了强大的功能,允许Java开发者利用本地代码的能力,扩展了Java的应用范围。无论是Windows还是Unix/Linux环境,通过...

    shell,bat脚本运行java程序

    下面将详细介绍如何使用shell脚本(适用于Unix/Linux系统)和bat脚本(适用于Windows系统)来运行Java程序。 **shell脚本运行Java程序** 在Unix/Linux环境中,我们可以创建一个.sh文件作为shell脚本来执行Java程序...

    java 执行cmd命令及mongodb脚本

    Java执行CMD命令及MongoDB脚本是开发过程中常见的任务,特别是在集成系统或者自动化运维场景下。下面将详细讲解这两个主题。 一、Java执行CMD命令 在Java中,我们可以使用Runtime类或ProcessBuilder类来执行操作...

    window 和UNIX JAVA 项目部署

    在IT行业中,Java项目的部署是开发到生产流程中的关键步骤,尤其当涉及到Windows和UNIX操作系统时,两者之间存在显著差异。下面将详细讲解这两个平台上的Java项目部署过程,以及环境变量配置的重要性。 首先,让...

    java中ping命令ping工具类(循环ping)

    java中ping命令ping工具类(循环ping) java ping ip ping命令 ping工具类 支持linux和windows等所有平台 Ping是Windows下的一个命令 在Unix和Linux下也有这个命令。 ping也属于一个通信协议,是TCP/IP协议的一部分 ...

    nexus-3.69.0-02-java17-unix.tar.gz

    《Nexus 3.69 Java 17 在 Unix 系统中的应用详解》 Nexus,由Sonatype公司开发,是一款强大的软件仓库管理器,它支持Maven、Ivy、Gradle等构建工具,是Java开发者的重要工具之一。本文将深入探讨Nexus 3.69.0-02在...

    UNIX下常用命令

    这个窗口可以是图形用户界面(如Linux上的gnome-terminal或Solaris上的dtterm)的一部分,也可以是通过网络登录到UNIX或Linux系统的应用程序,如telnet、SSH客户端或Windows PC上的PuTTY等。 #### 使用的Shell:...

    java程序产品包模板-内置linux和Windows通用shell启动停止脚本(无需系统安装Java运行环境).zip

    在脚本中,可能会用到诸如`java -jar`这样的命令来执行Java可执行jar文件,并且可能有逻辑来检查Java版本或者处理错误情况。 在Windows系统中,虽然默认的命令解释器是cmd.exe,但该模板提供了与Linux脚本兼容的...

    java操作DOS命令

    Java操作DOS命令主要指的是通过Java程序调用操作系统(如Windows、Linux等)的命令行接口,执行系统级别的操作。这种技术在很多场景下都非常实用,例如自动化测试、系统管理或者进行一些系统级别的数据处理。下面...

    java调用DOS命令

    Java调用DOS命令是指在Java程序中执行操作系统级别的命令,比如Windows下的CMD命令或Linux下的Shell命令。这种功能在很多场景下都很有用,比如自动化脚本、文件操作、系统管理等。Java提供了Runtime类和...

    java控制台输入cmd命令, ssh远程linux shell命令, 并打印命令输出到控制台

    以上就是使用Java执行本地CMD命令以及通过SSH连接远程Linux服务器执行shell命令的方法。这两个功能的结合,使开发者能够轻松地在不同的操作系统间进行跨平台的系统操作,极大地提高了开发和运维的效率。

    JAVA100例之实例41 执行系统命令

    在Java编程中,有时我们需要与操作系统...这样的示例对于理解和掌握Java执行系统命令的方法非常有帮助,也是实际开发中不可或缺的一项技能。通过实践这个例子,你将能够更好地理解和控制Java程序与操作系统之间的交互。

    Java程序快速转换为windows服务运行

    Java Service Wrapper是一款开源工具,用于将任何Java应用程序封装成一个Windows服务或者类Unix守护进程。通过该工具,用户可以方便地控制Java应用程序的启动、停止、暂停和恢复等操作,同时它还提供了一系列管理...

    获取windows or unix系统下服务器MAC地址及服务器IP地址

    2. 使用JNI(Java Native Interface):编写C++代码,调用Windows API函数如`GetAdaptersInfo`,然后在Java中通过JNI调用这个函数。 ### Unix/Linux系统下获取MAC地址 在Unix/Linux系统中,可以使用`ifconfig`命令...

    WebLogic性能优化及Unix命令操作.ppt

    WebLogic服务器是Oracle公司的一款企业级Java应用服务器,主要用于部署和管理Java...总的来说,WebLogic性能优化和Unix命令操作的结合使用,能够有效地提升服务器的运行效率,减少性能问题的发生,保证业务的正常运行。

    用JAVA调用外部程序并截出程序运行结果

    在Java编程中,有时我们需要与操作系统进行交互,执行一些外部程序并获取其运行结果。这通常通过使用Java的`Runtime`类或者`ProcessBuilder`类来实现。本文将详细讲解如何使用Java调用外部程序以及如何捕获并处理...

    Java运行环境配置

    - **PATH**:在PATH环境变量中添加`%JAVA_HOME%\bin`(Windows)或`$JAVA_HOME/bin`(Unix/Linux)。这样,系统可以在任何目录下执行Java命令,如`java`, `javac`等。 3. **验证Java环境配置**: 配置完成后,...

Global site tag (gtag.js) - Google Analytics