gpt4 book ai didi

java - 如何在 Java 和 Python 之间创建 2 路通信

转载 作者:行者123 更新时间:2023-12-03 20:41:21 28 4
gpt4 key购买 nike

我对 Java 和 Python 都很陌生,尽管我有一些编程经验。对于作业,我需要创建一个以某种方式使用 Java 的程序。我的项目将使用 Java 作为 UX,使用 Python 进行信号处理和特征提取,因为它有一些很好的工具。
但是,我的问题是如何在两个程序之间建立通信。也许以前有人问过这个问题,但由于我不知道最好的术语,所以我找不到答案。
在我的 Java 程序中,我可以获取 .csv 文件的文件路径,将其发送到 Python,Python 返回原始信号和处理后的信号。为此,我写道:

private static void sendPython(String path, JTextField console)
{
String pathPython = "C:\\Users\\gonca\\Desktop\\untitled0.py";
String [] cmd = new String[3];
cmd[0] = "python";
cmd[1] = pathPython;
cmd[2] = path;
Runtime r = Runtime.getRuntime();
try
{
Process p = r.exec(cmd);
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
String s = "";
while((s = in.readLine()) != null)
{
console.setText(s);
}
}
catch (IOException e)
{
console.setText("Unable to run python script");
}

}
我正在考虑让 py 脚本在分隔行中输出信号,值用“,”或“;”分隔,并使用 BufferedRead 读取每一行,分隔值并从分隔值创建一个新的 ArrayList。
但是,在开始更加努力地做到这一点之前,我想知道这是否是最好的方法,或者是否有更有效的方法来做到这一点。

最佳答案

有更多方法可以做到这一点:
解决方案1:
使用来自 java 的 python 库 System.loadLibrary ,并调用 python 方法。 (这是一个使用 C/C++ 的例子: Calling a python method from C/C++, and extracting its return value )
解决方案2:
将 python 作为另一个进程启动,并使用 D-Bus(或类似的东西)与它通信。

关于java - 如何在 Java 和 Python 之间创建 2 路通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66950775/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com