2

Jython 2.1 を使用するアプリケーションがあります。アプリでは、jythonc を使用して Python スクリプトを Java クラスに変換し、これらのクラスを他の Web アプリケーションと同じように Web アプリケーションに含めていました。そのため、パッケージ名を Python スクリプトに割り当て、他の Java クラスと同様にこれらのクラスにアクセスできました。

現在、Jython 2.5 に移行する予定です。Jython 2.5 では、jythonc のサポートが削除されました。だから私は使用しようとしました

jython -m compileall /path/to/my/python/scripts. 

これを行うと、コンパイルされたすべてのバイトコード ファイルが同じフォルダーに格納されます。各ファイルには myclass$py.class のような名前が付いています (私の python ファイルは myclass.py です)。

私の質問 -

  1. まず、別の通常の Java クラスでこれらのクラスにアクセスできますか?
  2. もしそうなら、私が使用すべきクラス名は何ですか? new myclass() のように使用すると、コードがコンパイルされません。
  3. compileall で生成されたバイトコードにパッケージ名またはクラス名を割り当てる/強制する方法はありますか?

ノート -

  • サポートされている新しいバージョンの Python が必要なので、jython 2.5 にアップグレードする必要があります。
  • バイトコードの最適化を行いたいので、Pythonコードをバイトコードにプリコンパイルすることに固執したいと思います。したがって、推奨されるオブジェクト ファクトリ メソッドは最後の手段にすぎません。オブジェクト ファクトリのアプローチでは、生成されたバイトコードを処理できないと想定しています。

どんな助けでも大歓迎です。

4

0 に答える 0