gpt4 book ai didi

java - 可以使用 GCJ 生成可从 Python 调用的库吗?

转载 作者:搜寻专家 更新时间:2023-11-01 03:45:26 26 4
gpt4 key购买 nike

是否可以使用 GCJ 编译用于 Java 的库,获取 dll 并从 python ctypes 调用?

我现在对 toxilibs 很感兴趣,但如果有人知道一个玩具示例那就太好了!

最佳答案

如果您想要 Java-Python Hook ,最好使用 Jython 然后以这种方式跨界调用。

但是,是的,可以从 Java 调用外部库;但你不需要 GCJ 来做到这一点。相反,您可以在 Python 运行时中启动一个 JVM 实例,然后为此调用您的方法。

JNI invocation spec

基本上,您希望在启动时创建 VM,然后在需要时调用您的方法:

// Do this once per session, e.g. an __init__ 

JNI_CreateJavaVM(&jvm, &env, &vm_args);

// When needed invoke Example.foo(int)
jclass cls =
env->FindClass("Example"); jmethodID
mid = env->GetStaticMethodID(cls,
"foo", "(I)V");
env->CallStaticVoidMethod(cls, mid,100);

您可以编写一些简单的 C 包装代码来从 ctypes 中为您调用它。然而,JavaVM 是一个结构的结构,具有许多 void* 指针,因此直接执行它可能不是一件容易的事。

关于java - 可以使用 GCJ 生成可从 Python 调用的库吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2203728/

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