gpt4 book ai didi

java - 使用 python 中的 java 库(Java 库的 Python 包装器)

转载 作者:太空狗 更新时间:2023-10-30 03:05:28 25 4
gpt4 key购买 nike

我有一个 jar 形式的 java 库,可用于从文件(excel、xml 等)中提取数据。由于它在java中,它只能在java应用程序中使用。但我也需要将相同的库用于 python 项目。我试过 py4j 等,它从 jvm 中获取对象。但该库不是可执行文件,不会“运行”。我已经检查过 Jython,但我需要可以从 Python 项目访问该库。我考虑过使用自动化的 java 到 python 翻译器,但我会把它作为最后的手段。

请建议一些我可以完成此任务的方法。

最佳答案

您可以创建一个线程永不结束的单类 Java 程序,直到您从 Python 发送通知。

这样,库将保存在内存中,并可从您的 Python 程序访问。

这个类可能是这样的(添加你需要的库导入/初始化):

public class TestPy {

private Thread thread;

public void die() {
synchronized (thread) {
thread.interrupt();
}
}

public TestPy() {
thread = new Thread(){
public void run() {
try {
while (!Thread.interrupted()) {
Thread.sleep(500);
}
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
}
};
thread.start();
}

public static void main(String[] args) {
TestPy tp = new TestPy();
GatewayServer server = new GatewayServer(tp);
server.start();
}
}

您必须启动 java 程序,使用 lib,然后使用 die() 方法在 Python 中终止 java 程序:

gateway = JavaGateway()
do your stuff here using the lib
tp = gateway.entry_point
tp.die()

关于java - 使用 python 中的 java 库(Java 库的 Python 包装器),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12052241/

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