Pythonパッケージからjarファイルを作りたいです。私はmavenでjython-compile-maven-pluginを使用しています。トリッキーな部分は、引数の処理のようです。受信側の python パッケージは、python 側で正常に動作する optparse を使用していますが、Java / jython を介してパラメーターを提供するのは困難です。
引数の欠落に関するエラーが発生しました。今、引数を main() に提供しようとしましたが、何も期待していません。
これは私が瓶に呼び出す方法です:
java -jar target/metrics-0.2.0-jar-with-dependencies.jar -f sample.txt --format csv -q
Java started
5 Arguments: -f, sample.txt, --format, csv, -q,
Exception in thread "main" javax.script.ScriptException: TypeError: main() takes no arguments (1 given) in <script> at line number 1
引数を適切に提供する方法についてのアイデアはありますか?
ここに私のInitJython.javaがあります:
package org.testingsoftware.metrics;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
import org.apache.commons.lang.StringUtils;
public class InitJython {
public static void main(String[] args) throws ScriptException {
System.out.println("Java started");
System.out.print(args.length + " Arguments: ");
for (String s : args) {
System.out.print(s);
System.out.print(", ");
}
System.out.println();
ScriptEngine engine = new ScriptEngineManager().getEngineByName("python");
// c.exec("try:\n from metrics.metrics import main\n main()\nexcept SystemExit:\n pass");
engine.eval("from metrics.metrics import main");
engine.eval("main('" + StringUtils.join(args, " ") + "')");
System.out.println("Java exiting");
}
public void run() throws ScriptException {
}
}