java.io.IOException:系统找不到指定的文件

时间:2015-02-26 16:58:17

标签: java eclipse

我的代码:

ProcessBuilder builder = new ProcessBuilder();
builder.command("n");

File file = new File("..");
builder.directory( file );

try {
        Process p = builder.start();
} catch (Exception e) {
    System.out.println(e);
} 

Eclipse说:

java.io.IOException
Cannot run program "n" (in directory ".."): CreateProcess error=2, The system cannot find the file specified

但是文件n.txt就在那里,如果我说:

for(String fileNames : file.list()) System.out.println(fileNames);

已列出:n.txt。 如果我替换" n.txt"同样的问题用" n"在源代码中或尝试调用.exe;

System.out.println(file.getCanonicalPath());

创建

F:\Programme\eclipse\workspaces\test

此:

System.out.println(builder.directory().getAbsolutePath());

创建

F:\Programme\eclipse\workspaces\SimulatorAddOn\SimulatorAddOn\..

代替

ProcessBuilder builder = new ProcessBuilder();
builder.command("n");

ProcessBuilder builder = new ProcessBuilder("n");

也不会改变任何事情。

我需要你的帮助。 提前致谢

1 个答案:

答案 0 :(得分:1)

我认为系统找不到该文件的原因是directory方法只设置构建器运行的进程的工作目录(来自Javadocs):

  

设置此流程构建器的工作目录。随后由此对象启动的子进程的start()方法将使用此作为其工作目录。

所以你需要这个:

builder.command("..\\n.txt");

供系统查找您的文件。这仍然没有做任何有用的事情,你会得到类似于:

的错误
Cannot run program "..\n.txt" (in directory ".."): CreateProcess error=193, %1 is not a valid Win32 application

流程构建器需要在您的操作系统中进行有效的应用程序。