【问题标题】:Java exec can't run program, error = 2Java exec 无法运行程序,错误 = 2
【发布时间】:2015-01-19 15:59:36
【问题描述】:

我正在尝试使用 Java exec 从 Java 应用程序运行 R.exe。 R 在环境变量中,如果我使用“R”命令从 cmd 执行它,它就可以工作。 如果我在 Java 中执行示例指令并尝试打开记事本,它可以工作:

Runtime rt = Runtime.getRuntime();
Process p = rt.exec("notepad");

但是当我尝试使用这条指令打开 R 时:

Process p = rt.exec("R");

它给了我这种错误:

java.io.IOException: Cannot run program "R": CreateProcess error=2

可能是什么?为什么我不能从 Java 打开 R?

【问题讨论】:

  • 在你的PATH这个R.exe上吗?
  • 它在环境变量中
  • @Enrico Tedeschi 是在特定用户的Path 中设置“R”还是在系统范围内设置?通常,当您从 IDE 运行程序时,以管理员身份运行,因此如果“R”仅设置在特定用户的 Path 中,可能会出现问题。
  • 它在系统路径中,如果我从 cmd 执行它,它可以在每个目录中工作。它不仅在 Java 中有效
  • 这是盲目的,但您可以尝试像"cmd /C R" 这样的命令吗?

标签: java eclipse r runtime.exec


【解决方案1】:

您需要确保 Windows PATH 包含 R 所在的目录才能正常工作

CreateProcess error=2表示找不到文件

【讨论】:

  • 如果我直接从我所在的每个目录中的 cmd 执行它,它就可以工作。它只是在 Java 中无法使用 exec 命令
  • 如何使用 ProcessBuilder ProcessBuilder pb = new ProcessBuilder("R", "", "", "", "");Process p = pb.start();
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-03
  • 2015-01-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多