我有一个用 C - igraph(库的名称)编写的图形库的 Python 接口。我的需要是从 Java 代码中调用与此图形库有关的 python 模块。就像这样,库的核心是在 c 中。该内核已导入 Python,并且内核中嵌入的函数的接口在 Python 中可用。我项目的其余代码是用 Java 编写的,因此我也想用 Java 调用图形函数。Jython - 允许您在 Java 中调用 python 模块是一个选项。我继续尝试 Jython 发现它在我的情况下不起作用,因为核心代码在 C 中,并且 Jython 不支持在 python 中作为 ac dll 导入的任何内容代码。我也想过选择直接在c中调用图形例程的方法。那是不通过 Python 代码。我假设一定有一些东西可以让你从 Java 调用 c 代码,但是我在 C 方面做得不好,所以我没有去。我最后的手段似乎是使用 Java 从命令行执行 Python 解释器。但那是一种肮脏和无耻的行为。此外,为了处理 Python 代码产生的结果,我必须将结果写入文件并用 java 读回。再次肮脏的方式。有什么可以建议我的吗?感谢每一位付出的时间。有什么可以建议我的吗?感谢每一位付出的时间。有什么可以建议我的吗?感谢每一位付出的时间。
感谢伊格尔的回答。我看过了。乍一看,它似乎只是在调用 python 脚本。
Jep jep = new Jep(false, SCRIPT_PATH, cl);
jep.set("query", query);
jep.runScript(SCRIPT_PATH + file);
jep.close();
如果从命令行通过 Java 代码调用 python 解释器,这不是很相似吗?
Runtime runtime = Runtime.getRuntime();
Process proc = runtime.exec("python test.py");
关心的是如何使用 Python 脚本生成的结果。天真的方法是将它们写入文件并用 Java 读回。我正在寻找一种更聪明的方法。无论如何,感谢您的建议。