すでに実行されているJavajarに含まれている特定のメソッドなどを呼び出せるようにしたい(実行されることが保証されている)。Jythonのようなものを見つけましたが、それらはJavaのネイティブクラスなどにしかアクセスできないようです。
1 に答える
3
これをチェックしてください:PythonからJavaを呼び出す
「Py4Jを使用することもできます。フロントページと多くのドキュメントに例がありますが、基本的には、PythonメソッドであるかのようにPythonコードからJavaメソッドを呼び出すだけです。
from py4j.java_gateway import JavaGateway
Gateway = JavaGateway()#JVMに接続します
java_object = Gateway.jvm.mypackage.MyClass()#コンストラクターを呼び出す
other_object = java_object.doThat()
other_object.doThis(1、'abc')
Gateway.jvm.java.lang.System.out.println('Hello World!')#静的メソッドを呼び出す
Jythonとは対照的に、Py4Jの一部はPython VMで実行されるため、常に最新バージョンのPythonで「最新」であり、Jythonで適切に実行されないライブラリ(lxmlなど)を使用できます。他の部分は、呼び出したいJavaVMで実行されます。
通信はJNIではなくソケットを介して行われ、Py4Jには独自のプロトコルがあります(特定のケースを最適化するため、メモリを管理するためなど)。
于 2012-06-16T16:47:32.547 に答える