Java 8 运行 使用参数处理时拒绝访问

Java 8 Acces Denied while running process with arguments

在我的程序中,我需要 运行 进程中的 exe 文件。我正在用 ProcessBuilder 来做。当我只对目录和 exe 名称进行编码时,进程正常 运行ning,但我想输入参数。当我尝试它时,我收到拒绝访问消息的异常。 这是我的代码:

Process process = new ProcessBuilder("C:\Directory", "file.exe", argument1).start();

有什么问题吗?

我之前的代码是:

 String folder = "C:\Directory";
 String exe = "File.exe";  
 ProcessBuilder pb = new ProcessBuilder();
 pb.command(folder + exe);
 pb.start();

通过这段代码,我能够在 ProcessManager 中看到启动的进程。

您的代码正在尝试执行 C:\Directory,这是不允许的。

可执行文件的完整路径必须在构造函数的第一个参数中,因此:

Process process = new ProcessBuilder("C:\Directory\file.exe", argument1).start();

这是假设 C:\Directory\file.exe 是您要 运行 的程序。

更新:在你的原始代码中你有:

 String folder = "C:\Directory";
 String exe = "File.exe";  

所以 'folder + exe' 是 C:\DirectoryFile.exe 所以你的等效代码是:

Process process = new ProcessBuilder("C:\DirectoryFile.exe", argument1).start();