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

时间:2012-12-06 04:02:24

标签: java outputstream

我正在尝试与从一些Python代码创建的简单.exe进行交互。我已经通过Windows cmd测试了.exe,它运行得很好。当我尝试通过我的java程序将相同的输入发送到.exe以生成我需要的图形时,OutputStream只是将“错误”写入控制台。我试过通过OutputStream发送一个字符串和一个整数,但无论如何都会获得相同的结果。我已经与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'

我很难过,已经有一段时间了。 python文件没有问题,它在当前目录中运行良好。有人可以帮忙吗?

-Nick K

1 个答案:

答案 0 :(得分:0)

它可能是相对路径的东西吗? Python默认路径可能无法获取本地目录/文件。

您是否尝试使用正确转义的'\'字符传递完整的Windows路径'C:\ Foo \ bar \ AirFoil \ ...'?