JAVA调用Python接口,Python端先return一个信息,再继续执行后续代码

JAVA端的一个函数A调用Python端的一个函数B,B先return给A一个信息,再继续执行B后面的代码,请问有什么思路么,或者有什么库可以实现么


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) {
        try {
            // 创建ProcessBuilder对象,指定要执行的Python脚本和参数
            ProcessBuilder pb = new ProcessBuilder("python", "path/to/your/python_script.py");
            // 启动子进程
            Process process = pb.start();

            // 获取子进程的标准输入流
            BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream()));
            // 获取子进程的标准输出流
            BufferedReader out = new BufferedReader(new InputStreamReader(process.getOutputStream()));

            // 调用Python函数B并传递参数
            out.write("your_input_data\n");
            out.flush();

            // 读取Python函数B返回的信息
            String info = in.readLine();
            System.out.println("Received info from Python: " + info);

            // 继续执行后续代码
            System.out.println("Continue executing...");

            // 关闭流和进程
            in.close();
            out.close();
            process.waitFor();
        } catch (IOException | InterruptedException e) {
            e.printStackTrace();
        }
    }
}

  • 这篇博客: 记录Idea整合Java和Python代码遇到版本问题的解决过程中的 阶段二:B剑客解决了和我一样的问题 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 于是把希望寄希望于B剑客,B剑客不负所望,经过一天的努力,解决了和我一样的问题,他的代码可以跑起来了。于是乎,把他的依赖尽数Copy给我。此时,B剑客提出Python版本不兼容的问题,于是我删掉了自己原有的Python,改成了与之相应的版本。

    第一次,失败。找失败的原因,可以能是没copy全

    第二次再Copy详细一点。

    第三次再再Copy详细一点。

    最后依赖加上Python差不多6个G还是失败。

    报错的原因的是DDL加载失败,还有什么numpy找不到。

    在CSDN上找了很多的解决方式,都没有解决这个问题,时间兜兜转转就到了下午了。

    我心一狠,算了,不弄了,我完全CopyA剑客的环境好了。B剑客也提出有可能是AnaConda的问题。