3

jar ファイルを開いてそのメイン関数を実行しようとしていますが、jpype が意味をなさないエラーをスローしています。これが私のコードです:

jpype.startJVM(jpype.getDefaultJVMPath(), '-Djava.class.path="%s"' % jar)
CommandLine = jpype.JPackage('phylonet').coalescent.CommandLine
CommandLine.main(['-i', input_file, '-o', output_file])
jpype.shutdownJVM()

次のエラーが表示されます: TypeError: Package phylonet.coalescent.CommandLine.main is not Callable

jar ファイルへの絶対パスを指定し、META-INF/MANIFEST.MF からメイン関数を取得しました。

cat tmp/META-INF/MANIFEST.MF | grep Main-Class
Main-Class: phylonet.coalescent.CommandLine

私が開こうとしている jar ファイルは、ここから astral と呼ばれます: https://github.com/smirarab/ASTRAL

このように呼び出すと、期待どおりに機能します。

java -Djava.class.path="./astral.jar"

では、jpypeで呼び出すとどうなりますか?

4

2 に答える 2