java - 如何从java程序在终端运行命令?

标签 java linux terminal

我需要在 Fedora 16 的终端上从 JAVA 程序运行命令。我尝试使用

Runtime.getRuntime().exec("xterm"); 

但这只是打开终端,我无法执行任何命令。

我也试过这个:

OutputStream out = null;
Process proc = new ProcessBuilder("xterm").start();
out = proc.getOutputStream();  
out.write("any command".getBytes());  
out.flush(); 

但我仍然只能打开终端,但无法运行命令。 关于如何做的任何想法?

最佳答案

你需要像这样使用 bash 可执行文件来运行它:

Runtime.getRuntime().exec("/bin/bash -c your_command");

更新: 正如 xav 所建议的那样,建议使用ProcessBuilder而是:

String[] args = new String[] {"/bin/bash", "-c", "your_command", "with", "args"};
Process proc = new ProcessBuilder(args).start();

关于java - 如何从java程序在终端运行命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15356405/

相关文章:

php - 下载 php 文件 tar

php - Socket发送终端输入的数据

java - 如何使用终端获取Android设备上所有应用程序的列表

java - 在hadoop中进行mapreducing后,part-r-00000和成功文件为0 kb

java - Android 多屏幕多选项菜单,无代码重复

java - 从 Android 上的日历提供程序中删除事件

java - 使用 Java 在 MAC OSX 和 Linux 中目录中的文件和目录列表

linux历史命令

java - 如何在 Struts 中重定向 NullPointerException?

java - Groovy/Java : Ini4j insert multiple values to single parameter in different lines