Java:OutputStream到.exe控制台应用程序问题

Java:OutputStream到.exe控制台应用程序问题,java,outputstream,Java,Outputstream,我正在尝试与我从一些Python代码创建的一个简单的.exe交互。我已经通过Windows cmd测试了.exe,它运行得很好。当我试图通过java程序向.exe发送相同的输入以生成所需的图形时,OutputStream只会将“error”写入控制台。我曾尝试通过OutputStream发送一个字符串和一个整数,但无论发生什么情况,都会得到相同的结果。我已经与X-Foil.exe进行了交互,X-Foil.exe是一个用于生成机翼数据文件的控制台应用程序,通过这个java应用程序获得了巨大成功。由

我正在尝试与我从一些Python代码创建的一个简单的.exe交互。我已经通过Windows cmd测试了.exe,它运行得很好。当我试图通过java程序向.exe发送相同的输入以生成所需的图形时,OutputStream只会将“error”写入控制台。我曾尝试通过OutputStream发送一个字符串和一个整数,但无论发生什么情况,都会得到相同的结果。我已经与X-Foil.exe进行了交互,X-Foil.exe是一个用于生成机翼数据文件的控制台应用程序,通过这个java应用程序获得了巨大成功。由于我必须对数据进行曲线拟合,我使用Python和matplotlib插件,然后使用py2exe创建.exe。我试图创建一个web应用程序,最终目标是设计一个机翼,因此使用java。以下是我遇到问题的方法:

    public void PyGrapher(String NACA_4d) {
    try {
        ProcessBuilder builder = new ProcessBuilder("PyAirfoilGraphing\\dist\\GraphPolars.exe");
        builder.redirectErrorStream(true);
        Process pr = builder.start();
        OutputStream out = pr.getOutputStream();
        BufferedReader in = new BufferedReader(new InputStreamReader(pr.getInputStream()));

        double CL_alpha;

        out.write((NACA_4d + "\n").getBytes());

        System.out.println(in.readLine());
        System.out.println(in.readLine());
        System.out.println(in.readLine());
        System.out.println(in.readLine());
        //CL_alpha = Double.parseDouble(in.readLine());

        pr.waitFor();
        pr.destroy();
        out.close();
        in.close();

    } catch (IOException | InterruptedException ex) {
    }
}
以下是我从控制台读到的内容:

  Input NACA 4-digit code: error
  Traceback (most recent call last):
    File "GraphPolars.py", line 16, in <module>
  IOError: [Errno 2] No such file or directory: '..\\..\\AirfoilPolars\\NACA_0024.dat'
输入NACA 4位代码:错误
回溯(最近一次呼叫最后一次):
文件“GraphPolars.py”,第16行,在
IOError:[Errno 2]没有这样的文件或目录:'..\\\\AspilPolars\\NACA_0024.dat'
我被难住了,已经有相当一段时间了。python文件没有问题,并且在当前目录中运行良好。有人能帮忙吗


-尼克K

可能是有相对路径的东西吗?Python默认路径可能没有拾取本地目录/文件


您是否尝试将其传递到完整的windows路径“C:\Foo\bar\翼型\…”使用正确转义的“\”字符?

我传递给exe的唯一内容是0024,其余部分由模块完成。我可以运行GraphPolars.exe在其当前折叠没有问题;“GraphPolars”和您的Java程序在同一文件夹中吗?你能从Java程序目录独立运行“GraphPolars”吗?是的,这很有效。单独运行时,生成的图形会保存到正确的目录中,因此文件就在那里;out.write((NACA_4d+“\n”).getBytes());//将正确的整数值输出到Python程序out.write(NACA_代码);//输出ASCII等效值我不知道,谢谢。但我仍然得到一个python错误,所以这可能是一个目录问题,但事实上,is本身运行良好并不能使情况变得更糟。