Java 8 运行带参数的进程时Java 8访问被拒绝
在我的程序中,我需要在进程中运行exe文件。我正在用ProcessBuilder做这件事。当我只输入代码目录和exe名称时,进程正常运行,但我想输入参数。当我尝试它的时候,我得到了一条拒绝访问的异常消息。 这是我的密码: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
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();