Java 8 运行带参数的进程时Java 8访问被拒绝

Java 8 运行带参数的进程时Java 8访问被拒绝,java-8,process,processbuilder,Java 8,Process,Processbuilder,在我的程序中,我需要在进程中运行exe文件。我正在用ProcessBuilder做这件事。当我只输入代码目录和exe名称时,进程正常运行,但我想输入参数。当我尝试它的时候,我得到了一条拒绝访问的异常消息。 这是我的密码: Process process = new ProcessBuilder("C:\\Directory", "file.exe", argument1).start(); 怎么了 我以前的代码可以工作,但没有参数: String folder = "C:\\Director

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

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();

你能把日志寄出去吗?并且它不适用于禁用的UAC。使用此代码,我在ProcessManager中找不到此进程。我以前的代码是:ProcessBuilder pr=newprocessbuilder();pr.command(文件夹+exe);当文件夹是没有exe.file的目录,而exe只是文件.exe时,您究竟要执行什么?一些允许使用我使用的参数的.exe文件。您的原始代码正在执行
C:\DirectoryFile.exe
,所以请使用
“C:\\DirectoryFile.exe”
作为使用此代码的第一个参数,我在process manager中找不到我的流程:process process=new ProcessBuilder(“C:\\Directory\\file.exe”,“argument1”).start();