作者cat1028 (cat1028)
看板java
标题Re: [问题] 如何使用Runtime呼叫Linux底下的程式并 …
时间Mon Oct 15 14:21:14 2007
我现在遇到的问题是,我想用Runtime.exec()来执行"source"这个指令
但是不管我怎麽改就是会出现error或是有exception的问题出现
不过"source"不是本来就是linux的内建指令吗???
以下是我的程式码:
/*************************************************************/
static void SourceSOCE() throws IOException
{
// invoke a shell and give command to it
Runtime runtime = Runtime.getRuntime()
String[] args = new String[]{"/bin/sh", "-c", "source
/backup/cad/cadence/CIC/soc.csh"};
Process proc = runtime.exec(args);
try
{
if (proc.waitFor() != 0)
{
System.err.println("exit value = " + proc.exitValue());
System.out.println("Source failed!!");
}
}
catch (InterruptedException e)
{
System.err.println(e);
}
}
/************************************************************/
※ 引述《jlovet (你这可恶的骗子)》之铭言:
: ※ 引述《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: 140.129.25.211
1F:推 iFEELing:Source 的 path ? 10/16 11:30
2F:推 cat1028:path = /backup/cad/cadence/CIC/soc.csh 10/17 13:12