为了账号安全,请及时绑定邮箱和手机立即绑定

Java 命令提示符命令抛出“没有这样的文件或目录”

Java 命令提示符命令抛出“没有这样的文件或目录”

暮色呼如 2023-04-13 15:19:25
我目前正在开发一个应该执行一些控制台命令的程序。我的代码如下所示:  private String executeCommands(String[] commands)  {    String result = "";    try    {      ProcessBuilder pb = new ProcessBuilder();      String s = null;      Charset charset = Charset.forName("IBM850");      BufferedReader stdInput;      Process proc;      for (String command : commands)      {        System.out.println("Ausfuehrung von: " + command);        pb.command(command);        proc = pb.start();        stdInput = new BufferedReader(new InputStreamReader(proc.getInputStream(), charset));        while ((s = stdInput.readLine()) != null)        {          result += s;        }        System.out.println();      }    }    catch (Exception ex)    {      result = ex.getMessage();    }    return result;  }  private void userLogIn(IUserInteraction userInteraction)  {    String[] command = { "svn auth --show-passwords" };    String result = executeCommands(command);    System.out.println(result);  }输出是“无法运行程序“svn auth --show-passwords”:错误=2,没有这样的文件或目录”,但是当我在控制台中手动输入命令时,它起作用了。我做错了什么?提前致谢!
查看完整描述

2 回答

?
慕尼黑8549860

TA贡献1818条经验 获得超11个赞

经过一些尝试,我找到了一个可行的解决方案


String result

String line;

      Process process = Runtime.getRuntime().exec(command);

      Reader r = new InputStreamReader(process.getInputStream());

      BufferedReader in = new BufferedReader(r);

      while ((line = in.readLine()) != null)

        result += line;

      in.close();


查看完整回答
反对 回复 2023-04-13
?
喵喔喔

TA贡献1735条经验 获得超5个赞

svn如果您的应用程序未携带环境变量,则对 jvm 没有任何意义。

尝试使用完整路径执行命令:

String[] command = { "/bin/dir1/dir2/svn auth --show-passwords" };

如果您不知道程序在哪里,请使用以下命令找出它:

which svn


查看完整回答
反对 回复 2023-04-13
  • 2 回答
  • 0 关注
  • 155 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信