写入java中的gnome终端

时间:2012-12-15 18:11:26

标签: java linux terminal gnome

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

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

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

    String cmd = "gnome-terminal"; 

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

提前致谢。

4 个答案:

答案 0 :(得分:2)

gnome-terminal接受-e参数,该参数允许您告诉它执行程序。

gnome-terminal -e /path/executable

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

答案 1 :(得分: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() ;
}

或者,类似的东西在这里解决了:Executing in java code an external program that takes arguments

答案 2 :(得分:0)

如果你是在终端内启动java程序,那么在运行时调用exec()并得到a Process后,你需要调用getInputStream()来读取输出命令,然后您可以将其打印到System.out。

答案 3 :(得分: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系统在这里试试。对不起:)

我希望这可以帮到你!