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();
在我的程序中,我需要 运行 进程中的 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();