我有一个C源,我已经使用预处理程序MCPP进行了预处理。我想用Java解析器解析这个预处理的源代码。为此,我需要从Java调用它。是否有一些API可以处理这样的调用。我计划将DOS命令作为批处理文件执行,并在Java中执行。当我使用标准的exec方法时
Runtime r = Runtime.getRuntime();
Process dos = r.exec("cmd.exe /c C:\\mcpp\\bin\\mcpp.exe -Iinclude csample.c");它导致预处理程序无法打开输入文件的错误。
正在等待建议。
cmd参数编辑的
发布于 2011-04-05 04:30:40
ProcessBuilder出现在我的脑海里
发布于 2011-04-05 05:58:49
关于
Runtime r = Runtime.getRuntime();
Process dos = r.exec("C:\\mcpp\\bin\\mcpp.exe -Iinclude csample.c");发布于 2011-04-05 17:03:56
您的问题是,您的命令运行在与您预期不同的目录中。您需要使用exec()的三个参数版本提供适当的目录。
public Process exec(String command,
String[] envp,
File dir)
throws IOException其中,第三个参数提供正在执行的命令的当前目录。确保将其设置为输入所在的目录。
编辑:示例:
r.exec("cmd.exe /c C:\\mcpp\\bin\\mcpp.exe -Iinclude csample.c",
null, // inherit current process environment
new File("/path/containing/csample.c"));https://stackoverflow.com/questions/5547206
复制相似问题