我正在尝试通过java程序在gnome终端中编写命令。我试过这段代码:
String cmd = "ls";
Runtime rt = Runtime.getRuntime();
Process p = rt.exec(cmd);
我正在尝试将“ls”写入终端,但没有任何反应,但如果我使用
String cmd = "gnome-terminal";
我可以打开一个新的终端窗口。 我真正想要做的是从终端运行一个C程序,用java调用它。
提前致谢。
答案 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系统在这里试试。对不起:)
我希望这可以帮到你!