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

本文针对为什么Runtime.exec("ls")没有任何输出作出解答,解答如下:

调用Runtime.exec方法将产生一个本地的进程,并返回一个Process子类的实例,该实例可用于控制进程或取得进程的相关信息. 由于调用Runtime.exec方法所创建的子进程没有自己的终端或控制台,因此该子进程的标准IO(如stdin,stdou,stderr)都通过Process.getOutputStream(),Process.getInputStream(), Process.getErrorStream()方法重定向给它的父进程了.用户需要用这些stream来向 子进程输入数据或获取子进程的输出. 所以正确执行Runtime.exec("ls")的例程如下:

try

{

process = Runtime.getRuntime().exec (command);

InputStreamReader ir=newInputStreamReader(process.getInputStream());

LineNumberReader input = new LineNumberReader (ir);

String line;

while ((line = input.readLine ()) != null)

System.out.println(line);

}

catch (java.io.IOException e){

System.err.println ("IOException " + e.getMessage());

}

时间: 2024-10-09 19:45:02

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

[转]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

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()运行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

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

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

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"

Runtime.exec()

关于RunTime类的介绍: 1 /** 2 * Every Java application has a single instance of class 3 * <code>Runtime</code> that allows the application to interface with 4 * the environment in which the application is running. The current 5 * runtime can be obtai

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

【解决】OCI runtime exec failed......executable file not found in $PATH&quot;: unknown

[问题]使用docker exec + sh进入容器时报错 [[email protected] home]# docker exec -it container-test bash OCI runtime exec failed: exec failed: container_linux.go:346: starting container process caused "exec: \"bash\": executable file not found in $PATH&