我正在尝试从Linux平台上的Java程序编译ac程序。我的片段是。
ProcessBuilder processBuilder = new ProcessBuilder("/usr/bin/gcc",
"-c","/hipad/UserProject/example.c");
Process proc = processBuilder.start();
在编译Java程序期间没有错误,但是我无法获取.o文件。我试图找出解决方案,但没有人在工作。任何建议.....
子进程的默认工作目录是Java进程作为工作目录所拥有的目录,通常是从其启动的目录。默认情况下,gcc将输出文件写入当前工作目录。那是您应该找到的地方example.o
。
有两种简单的方法可以解决此问题。您可以给gcc -o
选项以及所需输出文件的完整路径和名称,也可以设置子进程的工作目录,如下所示:
ProcessBuilder processBuilder =
new ProcessBuilder("/usr/bin/gcc", "-c","example.c"); // source in working dir
processBuilder.directory(new File ("/hipad/UserProject")); // or whatever
Process proc = processBuilder.start();
有关更多信息,请参见ProcessBuilder javadoc。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句