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();
}
}
}
于是把希望寄希望于B剑客,B剑客不负所望,经过一天的努力,解决了和我一样的问题,他的代码可以跑起来了。于是乎,把他的依赖尽数Copy给我。此时,B剑客提出Python版本不兼容的问题,于是我删掉了自己原有的Python,改成了与之相应的版本。
第一次,失败。找失败的原因,可以能是没copy全
第二次再Copy详细一点。
第三次再再Copy详细一点。
最后依赖加上Python差不多6个G还是失败。
报错的原因的是DDL加载失败,还有什么numpy找不到。
在CSDN上找了很多的解决方式,都没有解决这个问题,时间兜兜转转就到了下午了。
我心一狠,算了,不弄了,我完全CopyA剑客的环境好了。B剑客也提出有可能是AnaConda的问题。