Пользование библиотекой Java из Python

Это связано с тем, что фреймворк требует, чтобы два объекта, которые одинаковы, должны иметь один и тот же хэш-код. Если вы переопределите метод equals, чтобы выполнить специальное сравнение двух объектов, и оба объекта считаются одинаковыми с помощью метода, то хэш-код двух объектов также должен быть одинаковым. (Словари и Hashtables полагаются на этот принцип).

31
задан Jim 25 January 2009 в 10:12
поделиться

5 ответов

Если Вы действительно хотите встроить свое приложение Java в рамках Вашего процесса Python, взглянуть на JPype. Это обеспечивает доступ к Java через JNI.

5
ответ дан Stéphane Bonniez 11 October 2019 в 11:12
поделиться

Как насчет того, чтобы использовать большой глоток: http://www.swig.org/Doc1.3/Java.html ?

4
ответ дан 11 October 2019 в 11:12
поделиться

Оберните свой Код Java в Контейнер (Сервлет / EJB).

Так Вы donВґt освобождают время в vm-запуске, и Вы идете путем к более для обслуживания широкого круга запросов.

Для того, чтобы переноситься можно использовать jython (, только имеют смысл, если Вы знакомы с python)

, Выбирают коммуникацию-protocoll, в которой Python и Java могут использовать:

  • json (см. www.json.org)
  • rmi (Python: JPype)
  • REST
  • SOAP (только для храброго)

Выбирает что-то, с чем Вы или Ваши партнеры знакомы!

5
ответ дан Blauohr 11 October 2019 в 11:12
поделиться

Дайте JCC попытку http://pypi.python.org/pypi/JCC/2.1

, JCC является генератором кода для вызова Java непосредственно от CPython. Это поддерживает CPython 2.3 +, несколько JREs (Sun JDK 1.4 +, Apple JRE 1.4 +, и OpenJDK 1.7) на OS X, Linux, Солярисе и Windows. Это производится Основой Приложения с открытым исходным кодом (OSAF, люди, делающие Chandler), и выпущено в соответствии с лицензией стиля Apache.

Из описания пакета:

JCC является генератором кода C++ для создания кода связующего звена, необходимого для вызова в классы Java от CPython через Собственный Интерфейс Вызова Java (JNI).

JCC генерирует классы обертки C++, которые скрывают все окровавленные детали доступа JNI также память Java и управление ссылкой на объект.

JCC генерирует типы CPython, которые делают эти классы C++ доступными из интерпретатора Python. JCC пытается сделать эти, Python вводит pythonic путем обнаружения средств доступа свойства и итераторов. Итераторы и отображения могут также быть объявлены к JCC.

2
ответ дан sstock 11 October 2019 в 11:12
поделиться

Смотрите на Jython. Это отчасти похоже на JNI, но замена C с Python, т.е. можно назвать Python от Java и наоборот. Не полностью ясно, что Вы пытаетесь сделать или почему Ваш текущий подход не то, что Вы хотите.

9
ответ дан Dave Ray 11 October 2019 в 11:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: