gpt4 book ai didi

java - Eclipse 使用运行时 exec 提供与 cmd 不同的输出

转载 作者:行者123 更新时间:2023-12-02 07:32:12 24 4
gpt4 key购买 nike

这是我的代码:

System.out.print("hellow");
try {
int x;
Runtime rt = Runtime.getRuntime();
Process proc = rt.exec("java CPU/memory");
BufferedReader in = new BufferedReader(new InputStreamReader(proc.getInputStream()));
String line = null;
while((line = in.readLine())!=null) {
System.out.println(line);
}
proc.waitFor();
} catch (Throwable t)
{
t.printStackTrace();
}
$

当我在 cmd 中运行 java CPU/CPU 时,我得到退出值为 0 的“hellowhello”

但是当我在 eclipse 中运行它时我就得到了退出值为 1 的“hello”

有什么想法吗?

最佳答案

从命令字符串执行和从 Eclipse 执行有不同的系统环境。

环境变量很有值(value):PATH、JAVA_HOME 或 JRE_HOME 以及您当前的工作目录。

当我必须确定环境中是否为像您的“java CPU/内存”这样的外部进程提供时,我使用 ProcessBuilder。

我认为首先您的外部进程的工作目录错误。在 ProcessBuilder 中,您可以使用以下命令指向它:

ProcessBuilder pb = new ProcessBuilder("java", "CPU/MEMORY");   
pb.directory(new File("/home/myhome/myjavaprojects"));
Process p = pb.start();

关于java - Eclipse 使用运行时 exec 提供与 cmd 不同的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12764250/

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