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 です)。
私の質問 -
- まず、別の通常の Java クラスでこれらのクラスにアクセスできますか?
- もしそうなら、私が使用すべきクラス名は何ですか? new myclass() のように使用すると、コードがコンパイルされません。
- compileall で生成されたバイトコードにパッケージ名またはクラス名を割り当てる/強制する方法はありますか?
ノート -
- サポートされている新しいバージョンの Python が必要なので、jython 2.5 にアップグレードする必要があります。
- バイトコードの最適化を行いたいので、Pythonコードをバイトコードにプリコンパイルすることに固執したいと思います。したがって、推奨されるオブジェクト ファクトリ メソッドは最後の手段にすぎません。オブジェクト ファクトリのアプローチでは、生成されたバイトコードを処理できないと想定しています。
どんな助けでも大歓迎です。