3

jython での私の最初の試みは、pydev を使用して Eclipse で作成している Java/jython プロジェクトです。

Java プロジェクトを作成し、それを RightClick プロジェクト >> pydev >> として設定して pydev プロジェクトにしました。次に、Java 用と jython 用の 2 つのソース フォルダーを追加しました。各ソース フォルダーにはパッケージがあります。そして、各フォルダーをプロジェクトのビルドパスとして設定します。このすべてをお知らせしていると思いますので、プロジェクトを正しくセットアップしたかどうか教えていただければ幸いです。

しかし、本当の問題は、Java コードで使用できるように、jython コードをクラス ファイルにするにはどうすればよいかということです。推奨される方法は、eclipse/pydev が自動的にこれを行うことですが、私にはわかりません。jython ユーザー ガイドに記載されていることは、それが可能であることを暗示していますが、どこにも情報が見つかりません。

編集:ここここでいくつかの情報を見つけましたが、物事はあまりスムーズに進んでいません.

私は2番目のリンクのガイドをかなり厳密にフォローしてきましたが、jythoncでpythonクラスのコンストラクターを作成する方法がわかりません。

4

2 に答える 2

5

Jythoncはもう存在しません、それはクランプと呼ばれる別のプロジェクトに分岐しました、しかしそれで...

...次を使用して、Pythonスクリプトを.classファイルにプリコンパイルできます。

jython [jython home]/Lib/compileall.py[Pythonコードを保存するディレクトリ]

出典-Jythonニュースレター、2009年3月

Python 2.7コードを含むフォルダーをフィードすると(Jython 2.5では失敗することがわかっています)、機能しなくても.classファイルが出力されました。Jythonスクリプトでそれを試してください。それがうまくいったら、私たちに知らせてください。私はあなたがすぐに十分な場所にいるでしょう。

ここまで進んだら、コマンドラインステートメントを必要に応じて呼び出すことができるPyDevの外部ツールに変換するのは難しくありません。

于 2010-07-08T18:35:00.473 に答える
0

「jythonc を使用せずに Java から Jython にアクセスする」チュートリアルに従って、Java コード内で jython モジュールを使用できるようになりました。唯一の注意点は、*.py モジュールが *.class ファイルにコンパイルされないことです。そのため、Java 内での特殊なスクリプトであることが判明しました。もちろん、パフォーマンスは jythonc の py モジュールよりも低下する可能性がありますが、jython コミュニティ ページから得たように、jython はサポートされません (実際、jython2.5.1 では既に削除されています)。

そのため、jythonc 以外のアプローチに従うことにした場合は、上記のチュートリアルが最適です。JythonFactory.java コードを少し変更する必要がありました。

String objectDef = "=" + javaClassName + "(your_constructor_params here)";
try {
       Class JavaInterface = Class.forName(interfaceName);

       System.out.println("JavaInterface=" + JavaInterface);

       javaInt = 
            interpreter.get("instance name of a jython class from jython main function").__tojava__(JavaInterface);
    } catch (ClassNotFoundException ex) {
        ex.printStackTrace();  // Add logging here
    }
于 2009-10-14T00:29:15.423 に答える