将另一个文件的路径传递给从Java程序内部运行的exe

将另一个文件的路径传递给从Java程序内部运行的exe,java,io,cygwin,Java,Io,Cygwin,我正在编写一个Java程序,需要运行cygwin编译的exe文件。在运行它之后,它需要输入两行查询,每行以\n结尾。在第三行,它将收到一个答案。我需要在程序的其余部分阅读这个答案。 我输入的第二行是另一个文件的路径!如果我从CMD或cygwin运行相同的命令并输入它工作的路径,但是当我在Java程序中输入硬编码路径时,调用的exe文件返回没有这样的文件。在这种情况下是否有特殊的路径指令? 我有下面的代码运行程序并获得程序输出,但在得到我想要的结果之前,exe给出了一个错误,即没有这样的文件并退出

我正在编写一个Java程序,需要运行cygwin编译的exe文件。在运行它之后,它需要输入两行查询,每行以\n结尾。在第三行,它将收到一个答案。我需要在程序的其余部分阅读这个答案。 我输入的第二行是另一个文件的路径!如果我从CMD或cygwin运行相同的命令并输入它工作的路径,但是当我在Java程序中输入硬编码路径时,调用的exe文件返回没有这样的文件。在这种情况下是否有特殊的路径指令? 我有下面的代码运行程序并获得程序输出,但在得到我想要的结果之前,exe给出了一个错误,即没有这样的文件并退出

ProcessBuilder pb = new ProcessBuilder("C:/Users/Armen/Downloads/oll-0.03/oll_line.exe","P");
pb.redirectErrorStream(true);
Process cmd = pb.start();
PrintWriter pWriter = new PrintWriter(cmd.getOutputStream());
pWriter.println("L C:/Users/Armen/workspace/recurdom/model0fsupernew");
pWriter.flush();
//HERE IT GIVES ME THE ERROR
//pWriter.close();
InputStream is = cmd.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line;
line = br.readLine();
System.out.println("here received: "+line);
//pWriter.println("T +1 5:1 51:1 70:1 92:1 121:1 142:1 181:1 202:1 215:1 250:1 272:1 291:1 330:1 347:1 371:1 409:1 423:1 449:1 481:1 513:1 521:1 522:-1 523:-1 524:-1 525:-1 526:-1 527:-1 528:-1 529:-1 530:-1 539:1");
//pWriter.flush();

我不确定,因为路径不应该使用\\而不是/?谢谢@Thronghar!我是这么想的,但结果是/或\\两者都可以启动外部程序,但当将其作为输入参数时,它们都不起作用。我甚至尝试在我的当前目录中传递一个文件,这样它就不需要路径,但仍然找不到该文件。从另一个程序内部调用程序时,可能存在限制或路径更改?是否已将路径添加到windows路径中的bin目录C:\cygwin\bin,它可能会找到cygwin1.dll?是!使用cygwin编译的程序从我的Java运行,但它要求我提供另一个需要在其上进行计算的文件的路径。无法识别第二个文本文件的路径!我正在调用的程序是oll机器学习程序。它从我的java调用内部运行,但是为了测试我的结果,我可以使用exe文件oll_line.exe,其中我需要给出模型文件的路径,然后逐个输入测试实例,接收预测。