выполнение jython байт-код с помощью Java

Похоже, что я пропускаю что-то.

Чтобы использование Jython выполнило мой код Python в Java, файлы байт-кода Java сгенерированы (test.py-> test@py.class).

Я могу выполнить эти классы непосредственно с помощью Java?

Другими словами, я хочу сделать это:

$ java test@py [additional cp args]

работа.

Намерение: написание кода Python и не необходимость отдать исходный код.

10
задан noamtm 6 April 2010 в 07:06
поделиться

2 ответа

Если ваша единственная задача - распространять приложение без предоставления исходного кода, вы можете воспользоваться такими инструментами, как cx_freeze и py2exe в Windows и py2app на Mac.

Эти инструменты могут компилировать файлы .py в байт-код.

0
ответ дан 4 December 2019 в 02:50
поделиться

См. FAQ - Встраивание Jython .

Обратите внимание, что jythonc больше не поддерживается :

jythonc не обрабатывает генераторы, его сложно отлаживать и улучшать. В настоящее время мы думаем о добавлении возможностей к самому jython для генерации байт-кода из файлов py и запуска этих статически скомпилированных элементов, а не к подходу jythonc для создания классов Java, которые работают как базовый код Python. Текущее мышление выглядит следующим образом:

  • Превратите классы Python в классы Java без интерфейса или класса Java, используя аннотации функций, чтобы указать информацию о статическом типе Java
  • статически скомпилировать прокси-классы для классов Python, которые расширяют классы Java
  • удалить код из ядра, предназначенный только для поддержки jythonc

В примере предлагается специальная аннотация для любого метода в классе Python, который должен быть виден из Java:

class Simple(object):
  @java
  def __init__(self):

  @java(String, String)
  def firstWord(self, param):
    return param.split(' ')[0]
3
ответ дан 4 December 2019 в 02:50
поделиться
Другие вопросы по тегам:

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