2011-09-08 70 views
3

正在運行進程生成器並嘗試源/ etc/profile以便能夠執行在常規shell中工作的命令。正在嘗試執行「源」命令的正在運行的進程生成器

String args[] = {"source", "/etc/profile"}; 
Process p = new ProcessBuilder(args).start(); 
InputStream is = p.getInputStream(); 
InputStreamReader isr = new InputStreamReader(is); 
BufferedReader br = new BufferedReader(isr); 

不幸的是,它返回:

java.io.IOException: Cannot run program "source": java.io.IOException: error=2, No such file or directory 

任何幫助,不勝感激!

+3

我相信'source'命令內置在外殼,所以你將無法直接從Java運行它。執行'bash'而不是'source'可能會訣竅。 –

+0

@Wesley是的''bash -c'source/etc/profile''將會訣竅。但是,當bash進程終止時,環境的所有變化都會丟失。無論如何,你的過程不會看到他們。 –

+0

有沒有辦法讓標準的shell環境進入一個進程? – Joris

回答

相關問題