Я пытаюсь получить доступ к объектам Java из кода Python, используя graalvm. Может кто-нибудь указать мне на пример кода? По сути, я хочу иметь возможность запускать graalpython --polyglot --jvm myscript.py, где myscript.py может создать экземпляр объекта Java
Я просмотрел документацию по graalvm, и единственный найденный пример создает экземпляры Java-массивов из кода Python (см. Ниже). Я также просмотрел примеры полиглотов в этой ссылке https://www.graalvm.org/docs/reference-manual/embed/#access-java-from-guest-languages, и это по существу запускает Java Polyglot API, который запускает код Python, который обращается к Java-объекту, но это не то, что я хочу.
Пример кода, приведенный ниже, взят из этой ссылки , в которой также упоминается "и доступ к другим классам, кроме массивов 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")
И я получил следующее о / п:
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]