在我的程序中,我需要在进程中运行exe文件。我正在使用ProcessBuilder。当我只对目录和exe名称进行编码时,进程正常运行,但我想放置参数。当我尝试它时,我会通过Acces Denied消息获得异常。 这是我的代码:
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中看到启动过程。
答案 0 :(得分:1)
您的代码正在尝试执行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();