今天无事,试一下ProcessBuilder,没想到这么一段简单的代码运行不过去
public static void main(String[] args) throws IOException {
ProcessBuilder pb = new ProcessBuilder("dir");
pb.directory(new File("e:/temp"));
Process p = pb.start();
BufferedReader in = new BufferedReader(new InputStreamReader(p
.getInputStream()));
String aline = in.readLine();
while (aline != null) {
System.out.println(aline);
aline = in.readLine();
}
}
运行时报错:
Exception in thread "main" java.io.IOException: CreateProcess: dir error=2
后来才找到原因,原来是因为dir不是一个命令,它是cmd.exe的子命令,所以应该写成这样:
ProcessBuilder pb = new ProcessBuilder("cmd.exe", "/C", "dir");
呵呵
分享到:
- 2009-05-15 10:09
- 浏览 2143
- 评论(0)
- 论坛回复 / 浏览 (0 / 2779)
- 查看更多
相关推荐
总结来说,当在Java中执行ffmpeg命令遇到问题时,需要关注操作系统对命令行参数的处理方式,以及Java自身的命令执行机制。同时,确保正确地转义特殊字符,使用适当的API来构建和执行命令,或者寻找更高级的库来简化...
`exec()`方法返回一个`Process`对象,该对象可以用来获取命令执行的状态,读取输出流等。 二、ProcessBuilder类 `ProcessBuilder`类提供了更灵活的方式来执行命令,可以设置环境变量,工作目录等。创建`...
在Java中,我们可以使用Runtime类或ProcessBuilder类来执行操作系统级别的命令。这两种方法都能实现与操作系统的交互,但各自有其特点。 1. 使用Runtime类: ```java Runtime runtime = Runtime.getRuntime(); ...
相比于`Runtime.exec()`,`ProcessBuilder`提供了更加强大和灵活的功能,并允许开发者更好地控制进程的执行。`ProcessBuilder`类用于创建操作系统进程,每个`ProcessBuilder`实例管理一系列进程属性,通过`start()`...
在 Java 中,使用 ProcessBuilder 类可以执行外部命令或程序,例如执行系统命令、运行可执行文件等。但是,默认情况下,ProcessBuilder 类的调用是阻塞的,即调用线程会等待外部命令或程序的执行完成后才继续执行。...
ProcessBuilder允许我们更灵活地设置命令和环境变量,甚至可以指定命令执行的工作目录。以下是一个使用ProcessBuilder的例子: ```java List<String> commands = Arrays.asList("mkdir", "新建目录"); ...
然后,我们通过`BufferedReader`读取命令执行的输出并打印到控制台。 但是,`Runtime.getRuntime().exec()`方法有一些限制,例如无法处理命令行参数、重定向输入和输出、以及对命令行错误流的处理。为了克服这些...
在SpringBoot项目中,我们可以创建一个服务或者控制器,通过Java的Runtime类或者ProcessBuilder类来执行系统命令,即ADB命令。例如,以下是一个简单的示例,展示如何通过Java代码执行ADB命令: ```java import java...
不当的命令执行可能导致安全漏洞,所以应该避免执行不确定来源的命令,并始终对用户输入进行严格的验证和过滤。同时,合理地设计权限策略,避免过度权限,以保护用户的隐私和设备的安全。 总的来说,"android 执行...
这个过程通常被称为“外部进程调用”或“系统命令执行”。标题“java执行外表命令”指的就是如何在Java程序中运行操作系统命令。这篇博客(博文链接:https://rdman.iteye.com/blog/1214069)可能详细介绍了这个主题...
然后,你可以使用`processBuilder.start()`启动命令执行,但这并不会改变Android应用本身的当前工作目录。`cd`命令只会在那个临时的shell进程中生效,一旦该进程结束,这个目录变化就消失了。对于Android应用来说,...
2. **ProcessBuilder类**:`ProcessBuilder`提供了更灵活的命令执行方式,可以指定命令的路径,甚至环境变量和工作目录。例如: ```java ProcessBuilder pb = new ProcessBuilder("ls", "-l"); pb.directory(new ...
标题中的“JAVA执行shell命令小工具”指的是使用Java编程语言编写的小程序,它能够执行操作系统级别的Shell命令。在Java中,通常使用`Runtime.getRuntime().exec()`或者`ProcessBuilder`类来实现这一功能。这两个类...
`ProcessBuilder`类还提供了其他一些方法,如`directory()`用于设置命令执行的目录,`redirectInput()`, `redirectOutput()`, `redirectError()`用于重定向输入、输出和错误流,以及`start()`方法用于启动进程。...
综上所述,"Android程序中(APK程序)执行Adb shell命令"涉及到利用Java的Runtime或ProcessBuilder类来调用系统shell,执行特定的命令。这个过程需要理解ADB的作用,以及如何在Android应用程序中安全地使用shell命令...
在Java中,我们可以使用`Runtime`类或者`ProcessBuilder`类来执行系统命令。这里以`Runtime`为例: ```java import java.io.BufferedReader; import java.io.InputStreamReader; public class CmdExecutor { ...
Java执行JS导致命令执行的机理剖析 Java执行JS导致命令执行是一个非常重要的知识点,今天我们将详细探讨这个知识点的机理和实现方式。 首先,让我们回顾一下之前讨论的XMLDecoder序列化的底层,特别是Expression类...
通过ProcessBuilder类,可以轻松地执行外部命令,并获取其输出结果。在本文中,我们将详细介绍如何使用ProcessBuilder类来调用外部程序,并通过示例代码演示其使用方法。 ProcessBuilder类的基本使用 ...
在实际应用中,你可能需要处理命令执行的输出、错误,甚至进行进程间的通信。需要注意的是,执行命令行操作时要特别小心,避免引入安全漏洞,如执行不受信任的用户输入。在Node.js中,尤其要确保只执行预期的命令,...
在Java中,我们可以通过`Runtime.exec()`或`ProcessBuilder`类来执行这样的系统命令。 首先,让我们详细了解一下`Runtime.exec()`方法。这个方法允许Java程序在运行时执行外部程序或命令。例如,如果我们要在CMD中...