Java如何执行外部命令并获得结果?
此示例演示如何从Java执行外部命令并获取命令结果。在这里,我们简单地ls -al在当前工作目录上执行Linux命令并显示结果。
package org.nhooo.example.lang;import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class ProcessResult {
public static void main(String[] args) {
try {
Process process = Runtime.getRuntime().exec("ls -al");
// 等待此过程完成或终止
process.waitFor();
// 获取流程退出值
int exitValue = process.exitValue();
System.out.println("exitValue = " + exitValue);
// 通过读取以下命令来读取ls -al命令的结果
// 流程的输入流
InputStreamReader is = new InputStreamReader(process.getInputStream());
BufferedReader reader = new BufferedReader(is);
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
}
}
以下是我们的程序结果:
exitValue = 0total 64
drwxr-xr-x 20 wsaryada staff 680 Aug 7 14:13 .
drwxr-xr-x 4 wsaryada staff 136 Jun 18 00:33 ..
-rw-r--r--@ 1 wsaryada staff 6148 Jun 29 14:04 .DS_Store
-rw-r--r-- 1 wsaryada staff 267 May 19 20:47 .editorconfig
drwxr-xr-x 16 wsaryada staff 544 Aug 10 08:34 .git
-rw-r--r-- 1 wsaryada staff 1535 May 19 20:47 .gitignore
drwxr-xr-x 15 wsaryada staff 510 Aug 10 08:34 .idea
-rw-r--r-- 1 wsaryada staff 1313 May 19 20:47 LICENSE
-rw-r--r-- 1 wsaryada staff 101 May 19 20:47 README.md
drwxr-xr-x 5 wsaryada staff 170 Jul 28 23:11 nhooo-basic
drwxr-xr-x 6 wsaryada staff 204 Jun 30 14:22 nhooo-commons
drwxr-xr-x 6 wsaryada staff 204 Jul 27 15:32 nhooo-lang-package
drwxr-xr-x@ 5 wsaryada staff 170 Jun 16 20:49 nhooo-mail
drwxr-xr-x 6 wsaryada staff 204 Aug 7 17:22 nhooo-mybatis
drwxr-xr-x 5 wsaryada staff 170 Jul 20 10:36 nhooo-poi
-rw-r--r-- 1 wsaryada staff 669 Jun 2 14:29 nhooo-project.iml
drwxr-xr-x 7 wsaryada staff 238 Jun 26 21:52 nhooo-swing
drwxr-xr-x 6 wsaryada staff 204 Aug 3 15:06 nhooo-util-package
drwxr-xr-x 6 wsaryada staff 204 Jun 30 15:09 maven-helloworld
-rw-r--r-- 1 wsaryada staff 1622 Aug 7 14:13 pom.xml
以上是 Java如何执行外部命令并获得结果? 的全部内容, 来源链接: utcz.com/z/330739.html