gpt4 book ai didi

java - 为什么从 Java 应用程序运行 MAKE 会导致出现错误消息?

转载 作者:太空宇宙 更新时间:2023-11-04 10:07:01 25 4
gpt4 key购买 nike

我尝试从 Java 运行 Linux shell 命令。这些命令直接在 shell 上运行良好,但总是崩溃。
我有一个 makefile,我尝试通过 Java 运行 make。

我的 Java 代码:

String command = "make generate FILE=" + name ;
String [] envp = { } ;
File dir = new File ( System.getProperty("user.dir")) ;
Process proc = Runtime.getRuntime().exec(command,envp,dir);
proc.waitFor();

BufferedReader buf = new BufferedReader(new InputStreamReader(proc.getInputStream()));
String line = "";
while ((line=buf.readLine())!=null) {
System.out.println(line);
}

我的生成文件:

generate:
llvm-as -f VSOP_Executable/$(FILE).ll -o $(FILE).bc
llc $(FILE).bc
gcc -c $(FILE).s -o $(FILE).o
gcc $(FILE).o -o $(FILE) -no-pie

它总是在我尝试生成可执行文件的最后一行崩溃。
错误:

makefile:47: recipe for target 'generate' failed

最佳答案

解决为Paul Hicks在他的评论中写道。原因是清除所有环境变量。

我更改了代码并删除了空的 envp。它现在似乎可以工作了。

String cmd = "make generateVSOP FILE=" + name;
Runtime run = Runtime.getRuntime();
Process pr = run.exec(cmd);
pr.waitFor();

BufferedReader buf = new BufferedReader(new InputStreamReader(pr.getInputStream()));
String line = "";
while ((line=buf.readLine())!=null) {
System.out.println(line);
}

关于java - 为什么从 Java 应用程序运行 MAKE 会导致出现错误消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51851778/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com