将数据从Java传递到C ++并获得响应

我有两个简单的程序-一个用Java编写的

import java.io.*;

public class Main {
    public static void main(String[] args) throws IOException {
        Process p = Runtime.getRuntime().exec("./cpp");
        int data = 1;
        DataOutputStream dos = new DataOutputStream(p.getOutputStream());
        InputStream is = p.getInputStream();
        dos.writeInt(data);
        for (byte c : is.readAllBytes()) {
            System.out.print((char) c);
        }
    }
}

和另一个c ++

#include <iostream>
using namespace std;
int main(int argc,char **argv)
{
  int n;
  cin >> n;
  cout << n + 1 << "\n";

  return 0;
}

Java程序运行C ++程序并向其中传递一些值。 C ++程序计算一些值并将其返回给Java程序。问题是C ++程序似乎不读取输出流中给定的数据。当我运行Java程序时,它只是在读取响应的行中停止。但是,当我从C ++中删除cin时,它工作正常。

我也尝试通过这种方式传递值:

Process p = Runtime.getRuntime().exec("./cpp v1 v2 v3 v4");

但是有时候我需要传递非常大的数据,然后我得到

java.io.IOException: error=7,Argument list too long
zkl829602 回答:将数据从Java传递到C ++并获得响应

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3037104.html

大家都在问