Discussion:
[問題] 如何使用Runtime呼叫Linux底下的程式並 …
(时间太久无法回复)
狗狗
2007-07-21 04:12:57 UTC
Permalink
我現在的程式:

Runtime rt = Runtime.getRuntime();
Process proc = rt.exec(new String[] {"dv &", "null" } );
InputStream stdin = proc.getInputStream();
InputStreamReader isr = new InputStreamReader(stdin);
BufferedReader br = new BufferedReader(isr);

可是這樣在LINUX下執行會產生
Wrong Commend
java.io.IOException: java.io.IOException: dv &: not found
的錯誤訊息

請問要怎麼改才對呢?

另外...

開啟後如果要對他的Console去下指令

要怎麼寫?

※ 引述《ogamenewbie (._.)》之銘言:
==Local==

如果你只是要加參數的, 前面應該有...

如果你是要在 console 中可以按按鍵做互動的...

印象中可以把 console 中的訊息轉回指定的 StreamOutput...

有興趣的話可以去追一下 Eclipse 或 NetBeans 裡面,

Console 頁面的相關程式碼...

要不然你也可以 google 一下,

我記得對岸有人有追查過寫了心得..

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 163.25.148.49

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.129.25.234
你這可惡的騙子
2007-07-21 05:50:50 UTC
Permalink
※ 引述《dog0629 (狗狗)》之銘言:
: 我現在的程式:
: Runtime rt = Runtime.getRuntime();
: Process proc = rt.exec(new String[] {"dv &", "null" } );
: InputStream stdin = proc.getInputStream();
: InputStreamReader isr = new InputStreamReader(stdin);
: BufferedReader br = new BufferedReader(isr);
: 可是這樣在LINUX下執行會產生
: Wrong Commend
: java.io.IOException: java.io.IOException: dv &: not found
: 的錯誤訊息
ㄜ...不知道你有沒有寫過C...
要執行外部指令有兩種...
一種是 system, 他會呼叫預定的shell, /bin/sh 來執行你給的命令
這種你才可以有 dv & 這樣的指令

Java的Runtime.exec 要給完整的程式PATH
例如 /bin/ls
你參考一下APIDOC
public Process exec(String command) 像這一種的
command就只能單純是執行檔的位置,不能連參數都放進去
要放參數的確就像你寫的一樣...
可是array的第一個string還是執行檔名稱

當然..你的電腦上找不到 "dv &"這個檔案....

那...Java可以呼叫shell嗎
應該可以吧...我沒有試過
rt.exec(new String[]{"/bin/sh","-c","dv","&"})

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.164.166.241

Loading...