我正在尝试使用 graalvm 从 Python 代码访问 Java 对象。有人可以指出我的示例代码吗?本质上,我希望能够运行 graalpython --polyglot --jvm myscript.py 其中 myscript.py 能够实例化 Java 对象
我已经浏览了 graalvm 文档,并且我发现的唯一示例从 Python 代码实例化 Java 数组(见下文)我还浏览了此链接中的多语言示例 https://www.graalvm.org/docs/参考手册/嵌入/#access-java-from-guest-languages,它本质上运行 Java polyglot API,它运行访问 java 对象的 python 代码,但这不是我想要的。
下面的代码示例来自此链接,其中还提到“并访问除 Java 数组之外的其他类,需要重新编译图像并提供反射配置文件”,但我不太明白如何做到这一点。
import java
array = java.type("int[]")(4)
array[2] = 42
print("Printing Java Array" , array[2])
我尝试将上面的代码修改为:
import java
import polyglot
array = java.type("int[]")(4)
array[2] = 42
print("Printing Java Array" , array[2])
# Just to see if I can access Java , example copied from Javascript -> Java
re = polyglot.eval(string="RegExp()", language="java")
我得到了以下o/p:
Printing Java Array 42
Traceback (most recent call last):
File "polyglot.py", line 8, in <module 'polyglot.py'>
re = polyglot.eval(string="RegExp()", language="java")
NotImplementedError: No language for id java found. Supported languages are: [internal/nfi-native, nfi, regex, js, llvm, python, ruby]