`

java执行shell或者cmd命令

 
阅读更多
Shell: http://blog.csdn.net/bhq2010/article/details/7414788
Java执行Linux命令并返回命令结果 http://blog.csdn.net/jiafu1115/article/details/6941245
使用Java中的Runtime.exec()执行Windows命令 http://walsh.iteye.com/blog/449051

Java 可以通过 Runtime 调用Linux命令,形式如下:
Runtime.getRuntime().exec(command)
但是这样执行时没有任何输出,因为调用 Runtime.exec 方法将产生一个本地的进程,并返回一个Process子类的实例(注意:Runtime.getRuntime().exec(command)返回的是一个Process类的实例)该实例可用于控制进程或取得进程的相关信息。
由于调用 Runtime.exec 方法所创建的子进程没有自己的终端或控制台,因此该子进程的标准IO(如stdin,stdou,stderr)都通过 Process.getOutputStream(),Process.getInputStream(), Process.getErrorStream() 方法重定向给它的父进程了。
/**
	 * 运行shell脚本
	 * @param shell 需要运行的shell脚本
	 */
	public static void execShell(String shell){
		try {
			Runtime rt = Runtime.getRuntime();
			rt.exec(shell);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}


/**
	 * 运行shell
	 * 
	 * @param shStr
	 *            需要执行的shell
	 * @return
	 * @throws IOException
	 */
	public static List runShell(String shStr) throws Exception {
		List<String> strList = new ArrayList();

		Process process;
		process = Runtime.getRuntime().exec(new String[]{"/bin/sh","-c",shStr},null,null);
		InputStreamReader ir = new InputStreamReader(process
				.getInputStream());
		LineNumberReader input = new LineNumberReader(ir);
		String line;
		process.waitFor();
		while ((line = input.readLine()) != null){
		    strList.add(line);
		}
		
		return strList;
	}



CMD: http://qiaolevip.iteye.com/blog/1693623
package com.anxin.cmd.test;

import java.io.BufferedReader;
import java.io.InputStreamReader;

/**
 * @author: (le.qiao)
 * @e-mail: qiaolevip@gmail.com
 * @myblog: <a href="http://qiaolevip.iteye.com">http://qiaolevip.iteye.com</a>
 * @date: 2012-10-8
 * 
 */
public class Command {

	public static void main(String[] args) {
		try {
			Runtime rt = Runtime.getRuntime();
			String[] args = new String[]{"cmd","/c",command};
			Process pr = rt.exec(args,null,null);
			//Process pr = rt.exec("cmd /c dir"); // cmd /c calc
			// Process pr = rt.exec("D:\\xunlei\\project.aspx");

			BufferedReader input = new BufferedReader(new InputStreamReader(pr.getInputStream(), "GBK"));

			String line = null;

			while ((line = input.readLine()) != null) {
				System.out.println(line);
			}

			int exitVal = pr.waitFor();
			System.out.println("Exited with error code " + exitVal);

		} catch (Exception e) {
			System.out.println(e.toString());
			e.printStackTrace();
		}
	}
}
分享到:
评论

相关推荐

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

    在Java编程中,有时我们需要与操作系统进行交互,执行系统级别的命令,例如在控制台执行CMD命令或者通过SSH连接远程Linux服务器执行shell命令。这在自动化脚本、系统管理或者远程监控等场景中非常常见。本篇文章将...

    java执行cmd命令

    import java.io.*; /** * &lt;p&gt;Title: 执行CMD命令 * * &lt;p&gt;Copyright: Copyright (c) 2010 *

    java 执行cmd命令及mongodb脚本

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

    Java 调用 Shell 命令

    2. **调用Shell脚本**:通过Java的`Runtime.getRuntime().exec()`方法来执行Shell命令或脚本。 下面是一个具体的Java类实现示例,用于调用Shell脚本并记录执行日志: ```java import java.io.*; import java.text....

    java javascript 调用命令行 cmd

    在IT领域,有时候我们需要在Java或JavaScript代码中执行操作系统级别的命令,例如运行系统脚本、管理文件、控制进程等。这种需求通常通过调用命令行(CMD)来实现。本文将详细探讨如何在Java和JavaScript中调用...

    android通过jni执行shell命令

    JNI在各种场景下都非常有用,比如性能优化、利用系统底层功能或者如本例所示,执行系统级别的操作,例如运行shell命令。本文将深入探讨如何使用JNI在Android中执行shell命令。 首先,理解JNI的工作原理是必要的。...

    android执行adb shell命令源码

    以下是一个简单的示例,展示如何在Java代码中执行`adb shell`命令: ```java public class AdbShellExecutor { public static void executeShellCommand(String command) { try { Process process = Runtime....

    java调用shell脚本执行sqlldr与存储过程

    因为我在linux环境下执行shell脚本时sqlldr命令和sqlplus命令是正常执行的,没有任何问题,但是在java代码中调用脚本时却报错,所有排除了其他原因,只可能是环境变量的问题, 于是我把oracle的所有环境变量直接复制...

    andorid使用jni执行shell命令例子

    在Android开发中,有时我们需要执行一些底层操作,例如与硬件交互或者进行系统级别的操作,这时候JNI(Java Native Interface)和shell命令就显得尤为重要。本文将详细介绍如何在Android应用中使用JNI来执行shell...

    右键添加CMD命令

    标题“右键添加CMD命令”指的是在Windows操作系统中,通过修改注册表或安装特定软件,使得用户可以在文件夹上右键点击时,快速调出一个名为“CMD Here”的选项,以此打开命令提示符(CMD)并定位到该文件夹的位置。...

    Java代码执行shell命令的实现

    "Java代码执行shell命令的实现" Java代码执行shell命令的实现是指在Java程序中调用操作系统的shell命令,实现与操作系统交互的功能。下面将详细介绍Java代码执行shell命令的实现方法。 环境准备 在执行shell命令...

    java Sokcet远程调用shell

    Java Socket远程调用Shell是一种通过Java程序利用Socket通信协议实现对远程服务器的Shell命令执行的技术。这种方式常用于系统管理、自动化运维或者分布式系统的组件交互。下面将详细介绍这一技术的实现原理、步骤...

    WebLogic_CVE-2017-3248&&GetShell-CMD验证工具.rar

    Weblogic任意命令执行的检测工具。 WebLogic_CVE-2017-3248文件夹的执行命令: java -jar weblogic_cmd.jar -C whoami -H 10.1.1.104 -P...java -jar Weblogic-Unserialization-GetShll-CMD.jar 或者双击starter.bat.

    java在win下启动bat和在linux下启动shell脚本

    这个工具类可能使用了Java的`Runtime`或者`ProcessBuilder`类来执行外部命令。 `Runtime.getRuntime().exec()`方法可以用来执行系统命令,但它的使用需要注意错误流和输出流的处理,否则可能会阻塞程序的执行。这...

    java调用shell

    `execCmd`方法接受一个Shell命令作为字符串参数,通过`Runtime.getRuntime().exec(cmd)`执行该命令。`LineNumberReader`用于读取Shell脚本执行的输出,将其逐行存储到字符串变量`ret`中。值得注意的是,`2&gt;&1`表示...

    mysqldump java远程备份mysql数据库 cmd备份

    请确保Java程序有权限执行外部命令,并且mysqldump在Java执行环境的PATH中。 ### 进阶技巧 1. **加密备份**: 可以使用`--password`选项代替 `-p`,避免密码显示在命令行历史记录中。 2. **增量备份**: 虽然...

    java反序列化漏洞利用工具WebLogicExploit

    jboss回显执行命令部分利用异常抛出机制,本地(4.2.3.GA)测试成功,其他版本请自测 5. 体积更小,不再依赖java环境,但程序采用.net编写,需要.net 4.0环境 待完成: weblogic回显结果测试中,稍后加入

    ganymed-ssh2-linux,java-impala驱动,java-hana驱动

    java操作Linux-shell命令的jar文件,java语言执行 Linux-cmd命令 java操作Linux-shell命令的jar文件,java语言执行 Linux-cmd命令 java操作Linux-shell命令的jar文件,java语言执行 Linux-cmd命令 java操作Linux-shell...

    android系统中调用shell脚本

    因此,要在Android上运行shell脚本,我们通常需要通过Java代码来间接实现。 1. **使用Runtime类**:这是最基础的方法,通过`Runtime.getRuntime().exec()`方法执行shell命令。例如: ```java Process process = ...

    java调用DOS命令

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

Global site tag (gtag.js) - Google Analytics