【问题标题】:Java ProcessBuilder change driveJava ProcessBuilder 更改驱动器
【发布时间】:2015-04-20 10:26:02
【问题描述】:

以下代码:

Process p = new ProcessBuilder("G:").start();

给了我以下异常。

java.io.IOException: 无法运行程序 "G:": CreateProcess error=5, 访问被拒绝。

这有什么问题?

【问题讨论】:

  • 如果没有某种cmd 进程上下文,您将无法“更改驱动器”。 G: 根本不是可执行命令。您可以使用directory 属性更改命令执行位置的上下文。本质上,您尝试做的事情毫无意义,也许您可​​以尝试解释您要解决的问题

标签: java command-prompt processbuilder


【解决方案1】:

您似乎在寻找ProcessBuilder.directory(File),它设置了此流程构建器的工作目录。类似,

String[] command = {""}; // <-- the command to run.
ProcessBuilder pb = new ProcessBuilder(command);
pb.directory(new File("G:\\"));
Process p = pb.start();

一个裸露的G: 设置了一个不受JVM 控制的工作目录。

【讨论】:

  • 请注意,您不能更改正在运行的 Java 进程本身的当前工作目录。只能在ProcessBuilder中为子进程设置。
  • @Thilo True,但您可以调用System.getProperty("user.dir")获取当前工作目录。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-06
  • 1970-01-01
  • 2023-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多