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

それらを a に入れてString[]、同じメソッドを呼び出すだけです。

于 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

このフォーラムでの読み方: http ://www.linuxquestions.org/questions/linux-general-1/run-command-in-new-gnome-terminal-185216/

あなたが使用することができます

gnome-terminal -x sh -c "ls"

ターミナルを開いて「ls」を実行します(覚えていれば、「-c」オプションを使用すると、新しいターミナルでプログラムを実行できます)。

この瞬間、私は仕事をしていて、ここで試すLinuxXシステムを持っていません。ごめん :)

これがお役に立てば幸いです。

于 2012-12-15T18:22:34.977 に答える
0

ターミナル内から Java プログラムを開始している場合exec()、ランタイムを呼び出した後、コマンドの出力を読み取るために呼び出す必要があるProcessgetInputStream()場合は、それを System.out に出力できます。

于 2012-12-15T18:17:32.550 に答える