【发布时间】:2013-09-13 05:01:34
【问题描述】:
我不能使用 Process("dir/e.exe") 因为 e 需要在它自己的目录上执行,否则它不能访问它的资源。但是每当我尝试更改工作目录时都会收到异常:
Process("e.exe", new File(dir))
Process("e.exe", new File("\"+ dir))
Process("e.exe", new File(new File(dir).getCanonicalPath()))
Caused by: java.io.IOException: Cannot run program "e.exe" (in directory ".
\dir"): CreateProcess error=2, The system cannot find the file specified
这些不起作用,它们给了我完全相同的错误。有什么选择吗?
编辑:这是我的目录的外观:
MyFolder:
|-app.jar
|-folderWithExe
\-e.exe
【问题讨论】:
-
我没听懂。您想将进程的工作目录设置为
dir还是使用dir\file.exe启动进程?无论如何,请确保构建正确的目录路径。也许尝试通过完整路径,看看它会把你带到哪里。 -
问题是,要使可执行文件工作,必须在其目录中调用它。您不能通过“/path/to/exe/e.exe”来调用它,而只能通过“e.exe”来调用它。所以首先我需要将工作目录更改为dir,然后调用exe。我可以按照您描述的方式通过“dir\file.exe”进行操作,但这不是我想要的。我现在这样做的方式引发了我提到的异常。
-
尝试使用 ProcessBuilder 并通过它的方式设置工作目录:docs.oracle.com/javase/7/docs/api/java/lang/…
-
谢谢,但问题仍然存在
-
也许您可以向我们提供您的目录结构,请?
标签: scala process ioexception