Адекватная библиотека для связывания python и java?
Всем привет!
Возможно, кто-то сталкивался с подобной проблемой.
Задача - пользоваться java-классом на Cpython. (нужен класс org.apache.pig.scripting).
Вариант с Jython не подойдет, в скрипте так же используются C-библиотеки (pandas, numpy).
Соответственно, я пробовал py4j, но насколько я понял он требует запущенного java-приложения.
Интересует альтернативная библиотека для Python3 с функционалом вроде - запуск JVM, вызов java-класса, операции с ним, завершение JVM.
Woila!
К сожалению, этот форк у меня не пожелал установиться через python setup.py install.
Однако я нашел форк Jpype для py-3, и он отлично работает: https://pypi.python.org/pypi/JPype1-py3/0.5.5.2
Пример кода для генерации вектора случайных значений:
import jpype
p=jpype.getDefaultJVMPath()
if not jpype.isJVMStarted():
jpype.startJVM(p)
print('JVM started')
rnd_vec=[jpype.java.util.Random().nextGaussian() for i in range(1000)]
print(rnd_vec[:5])
Стоит отметить, что по окончанию выполнения JVM выключается самостоятельно, а использование jpype.shutdownJVM() приводит к RuntimeError.