[Java] Runtime Exec

经常用到Runtime的exec方法,记录一下标准用法,便于以后复制代码。

        Process process;
        String cmd = "cat /sys/devices/virtual/mxc_edid_class/mxc_edid_dev/timing";
        StringBuffer sb = new StringBuffer("");
        try {
            process = Runtime.getRuntime().exec("su");
            String line = null;
            DataOutputStream dos = new DataOutputStream(
                    process.getOutputStream());
            dos.writeBytes(cmd + "\n");
            dos.flush();
            dos.writeBytes("exit\n");
            dos.flush();
            BufferedReader bf = new BufferedReader(new InputStreamReader(
                    process.getErrorStream()));
            while ((line = bf.readLine()) != null) {
            }
            BufferedReader bf2 = new BufferedReader(new InputStreamReader(
                    process.getInputStream()));
            while ((line = bf2.readLine()) != null) {
                sb.append(line);
            }
            process.waitFor();
        } catch (Exception e) {
            e.printStackTrace();
            return;
        }
时间: 2024-10-27 07:47:12

[Java] Runtime Exec的相关文章

64位xp上java Runtime.exec无法正常运行的问题

有一段简单的java代码如下 package com.dongjak.test; import java.io.IOException; public class Test { public static void main(String[] args) { // ProcessUtils.shutdown(1); Runtime runtime = Runtime.getRuntime(); try { runtime.exec("shutdown -f -s -t 1"); } c

Java Runtime.exec()的使用

Sun的doc里其实说明还有其他的用法: exec(String[] cmdarray, String[] envp, File dir) Executes the specified command and arguments in a separate process with the specified environment and working directory. 那个dir就是调用的程序的工作目录,这句其实还是很有用的. Windows下调用程序 Process proc =Ru

java Runtime.exec() 执行问题

Runtime.exec() 不等同于直接执行command line命令! Runtime.exec()很有局限性,对有些命令不能直接把command line里的内容当作String参数传给exec(). 比如重定向等命令.举个例子: javap -l xxx > output.txt 这时要用到exec的第二种重载,即input 参数为String[]: Process p = Runtime.getRuntime().exec(new String[]{"/bin/sh"

Java Runtime.getRuntime().exec 执行带空格命令解决办法

String command = OpenOffice_HOME + "program\\soffice -headless -accept=\"socket,host=127.0.0.1,port=8100;urp;\" -nofirststartwizard "; command = "cmd /c start "+command.replaceAll(" ","\" \""); P

[转]Java中Runtime.exec的一些事

0 预备知识 1 不正确的调用exitValue 2不正确的调用waitFor 3 一种可接受的调用方式 4 调用认为是可执行程序的时候容易发生的错误 5 window执行的良好示例 6 不良好的重定向命令输出 7 良好的重定向输出示例 8 总结 9 问答 0 预备知识 Runtime类是一个与JVM运行时环境有关的Singleton类,有以下几个值得注意的地方: 0.1 Runtime.getRuntime()可以取得当前JVM的运行时环境,这也是在Java中唯一得到运行时环境的方法. 0.2

Java魔法堂:找外援的利器——Runtime.exec详解

一.前言 Java虽然五脏俱全但总有软肋,譬如获取CPU等硬件信息,当然我们可以通过JNI调用C/C++来获取,但对于对C/C++和Windows API不熟的码农是一系列复杂的学习和踩坑过程.那能不能通过简单一些.学习成本低一些的方式呢?答案是肯定的,在功能实现放在首位的情况下,借他山之石是最简洁有力的做法.而 Runtime.exec方法 就为我们打开这么的一条路了. 二.认识 java.lang.Runtime.exec方法    作用:用于调用外部程序,并重定向外部程序的标准输入.标准输

Runtime.exec() sucks!!!!

自己项目中使用到了 Runtime rt = Runtime.getRuntime(); Process p = rt.exec("query session");p.waitFor(); 结果在不同的windows 操作系统中,程序的运行不一致,在windows server 2008上可以很好的运行,但是到了windows7上去卡死了!!!!!!!!!!!!!!!!!!!!!! p.waitFor() 卡死了或者报错: [ERROR] xxxxx Thread-0 - Cannot

为什么Runtime.exec("ls")没有任何输出_JAVA基础教程

本文针对为什么Runtime.exec("ls")没有任何输出作出解答,解答如下: 调用Runtime.exec方法将产生一个本地的进程,并返回一个Process子类的实例,该实例可用于控制进程或取得进程的相关信息. 由于调用Runtime.exec方法所创建的子进程没有自己的终端或控制台,因此该子进程的标准IO(如stdin,stdou,stderr)都通过Process.getOutputStream(),Process.getInputStream(), Process.getE

使用Runtime.exec()运行windwos dos或linux shell命令

使用Runtime.exec()运行windwos dos或linux shell命令,按实际情况具体测试 实例代码: package com.bookoo.test.command; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter