首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Java调用预处理工具

问从Java调用预处理工具
EN

Stack Overflow用户
提问于 2011-04-05 04:29:00
回答 3查看 257关注 0票数 1

我有一个C源,我已经使用预处理程序MCPP进行了预处理。我想用Java解析器解析这个预处理的源代码。为此,我需要从Java调用它。是否有一些API可以处理这样的调用。我计划将DOS命令作为批处理文件执行,并在Java中执行。当我使用标准的exec方法时

代码语言:javascript
复制
Runtime r = Runtime.getRuntime();  
Process dos = r.exec("cmd.exe /c C:\\mcpp\\bin\\mcpp.exe -Iinclude csample.c");

它导致预处理程序无法打开输入文件的错误。

正在等待建议。

cmd参数编辑的

EN

回答 3

Stack Overflow用户

发布于 2011-04-05 04:30:40

ProcessBuilder出现在我的脑海里

票数 0
EN

Stack Overflow用户

发布于 2011-04-05 05:58:49

关于

代码语言:javascript
复制
Runtime r = Runtime.getRuntime();  
Process dos = r.exec("C:\\mcpp\\bin\\mcpp.exe -Iinclude csample.c");
票数 0
EN

Stack Overflow用户

发布于 2011-04-05 17:03:56

您的问题是,您的命令运行在与您预期不同的目录中。您需要使用exec()的三个参数版本提供适当的目录。

代码语言:javascript
复制
public Process exec(String command,
                    String[] envp,
                    File dir)
             throws IOException

其中,第三个参数提供正在执行的命令的当前目录。确保将其设置为输入所在的目录。

编辑:示例:

代码语言:javascript
复制
r.exec("cmd.exe /c C:\\mcpp\\bin\\mcpp.exe -Iinclude csample.c", 
       null, // inherit current process environment
       new File("/path/containing/csample.c"));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5547206

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档