0

我正在尝试通过 java 程序在 gnome 终端中编写命令。我试过这段代码:

    String cmd = "ls"; 
    Runtime rt = Runtime.getRuntime();
    Process p = rt.exec(cmd);

我正在尝试将“ls”写入终端但没有任何反应,但如果我使用

    String cmd = "gnome-terminal"; 

我可以打开一个新的终端窗口。我真正想做的是从终端运行一个C程序,用java调用它。

提前致谢。

4

4 回答 4

2

gnome-terminal接受-e参数,它允许你告诉它执行一个程序。

gnome-terminal -e /path/executable

只需将它们放入 aString[]并调用相同的方法即可。

于 2012-12-15T18:17:09.773 回答
1

使用以下命令执行外部程序对我有用:

try
 {
 Runtime rt = Runtime.getRuntime();
 Process proc = rt.exec("ls -l");
 InputStream in = proc.getInputStream();
 OutputStream out = proc.getOutputStream();
 InputStream err = proc.getErrorStream();
 proc.destroy() ;
}

或者,这里解决了类似的问题:在 java 代码中执行一个也接受参数的外部程序

于 2012-12-15T18:24:31.087 回答
0

如果您从终端中启动您的 java 程序,那么在您调用exec()运行时并获得一个Process您需要调用getInputStream()来读取命令的输出之后,您可以将其打印到 System.out。

于 2012-12-15T18:17:32.550 回答
0

我如何在这个论坛上阅读: http ://www.linuxquestions.org/questions/linux-general-1/run-command-in-new-gnome-terminal-185216/

您可以使用

gnome-terminal -x sh -c "ls"

打开终端并执行“ls”(如果我记得,“-c”选项可以在新终端中执行程序。)

在这一刻我在工作,我还没有 linux X 系统可以在这里尝试。对不起 :)

我希望这可以帮助你!

于 2012-12-15T18:22:34.977 回答