简体   繁体   中英

Write to gnome terminal in java

I'm trying to, through a java program, write commands in the gnome terminal. I tried this code:

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

I'm trying to write "ls" to the terminal but nothing happens, but if I use

    String cmd = "gnome-terminal"; 

I can open a new terminal window. What I really want to do is run a C program from the terminal, calling it with java.

Thanks in advance.

gnome-terminal takes the -e argument, which allows you to tell it to execute a program.

gnome-terminal -e /path/executable

Just put them in a String[] and call the same method.

executing an external program works for me with the following commands:

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() ;
}

Or, something similar is solved here: Executing in java code an external program that takes arguments as well.

如果要从终端启动Java程序,则在运行时调用exec()并获取Process ,需要调用getInputStream()来读取命令的输出,然后可以打印将其发送到System.out。

How I can read in this forum: http://www.linuxquestions.org/questions/linux-general-1/run-command-in-new-gnome-terminal-185216/

you can use

gnome-terminal -x sh -c "ls"

to open a terminal and execute "ls" (if i remember, the "-c" option can execute a program in a new terminal.)

In this moment I'm at work and I haven't linux X system to try here. Sorry :)

I hope that this can help you!

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM