gpt4 book ai didi

java - Runtime.getRuntime.exec() 错误代码

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

我正在尝试在Java应用程序中使用runtime.getruntime.exec。

很长一段时间以来,我一直在尝试运行不同的命令,但不断收到错误代码 2,我发现这意味着该文件或目录不存在。为了进行测试,我尝试传递一个基本命令,但收到错误代码 1。为什么会收到此错误代码?错误代码 1 是什么意思?

这是我的代码:

  private String executeCommand(String command) {
logger.info("executing command : " + command);
String result = null;
try {
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec(command);

BufferedReader input = new BufferedReader(new InputStreamReader(pr.getInputStream()));
BufferedReader stdError = new BufferedReader(new InputStreamReader(pr.getErrorStream()));
String line = null;

while ((line = input.readLine()) != null) {
result = result + line;
}

while ((line = stdError.readLine()) != null) {
result = result + line;
}
int exitVal = pr.waitFor();
System.out.println("Exited with error code " + exitVal);


} catch (IOException e) {
e.printStackTrace();
} catch (NumberFormatException e) {
e.printStackTrace();
} catch (Throwable e) {
e.printStackTrace();

}
logger.info("This is the result:" + result);
return result;

我是这样调用它的:

 String temp = executeCommand("cd $HOME/my-directory/my-subdirectory");

这是我的输出:

 INFO : programname - executing command : cd $HOME/my-directory/my-
subdirectory
Exited with error code 1
INFO : programname - This is the result:null/usr/bin/cd[8]: $HOME/my-
directory/my-subdirectory: not found

最佳答案

Runtime.getRuntime().exec(command) 期望 exe 文件作为传递的字符串中的第一个参数。像(cd、echo 等...)这样的命令是特定于命令行工具的,不能像直接传递的命令一样工作。您需要首先调用命令行工具,然后将命令作为参数传递:

// Invoke Command Line Tool (.exe is optional) (cmd for windows sh for Linux)
// 1st argument indicates you want to run a command (/C for windows -c for Linux)
// 2nd argument is the cmd line command to run (echo)
Runtime.getRuntime().exec("cmd.exe /C echo helloworld");
Runtime.getRuntime().exec("sh -c echo helloworld");

单独说明。您需要将结果初始化为空字符串而不是 null。否则,“null”一词将被添加到您打印的内容之前。

关于java - Runtime.getRuntime.exec() 错误代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47581457/

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