0

jython ライブラリ (jython-standalone-2.7-b3) を使用して Java から Python スクリプトを実行しています。私の唯一の意図は、Java コードから Python スクリプト ファイルをトリガーして実行できるようにすることです。スタンドアロンのメインクラスを適切に作成することができ、うまくいきました。今、私は自分のアプリケーション内(アプリサーバー内)に同じコードを入れましたが、今では同じスクリプトに対して、すべての段階でエラーが発生します。いくつかのモジュールが見つからないなどのメッセージが表示されます。しかし、メイン クラスから再試行すると、同じコードとスクリプトが正常に実行されるという私の混乱にさらに追加されます。これを実行するために、実行中の環境に注入する必要があるものはありますか..

使用したコード スニペット

    public void executeScript(String inputFile, String outputFile) throws FileNotFoundException {
    final PythonInterpreter inter = new PythonInterpreter(null, new PySystemState());
    Writer writer = null;
    writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outputFile)));
    inter.setOut(writer);
    inter.execfile(inputFile);
}

私が得る例外は

File "/data/WorkArea/anoj/APPNEW/com.anoj.commons.core/lib/jython-standalone-2.7-b3.jar/Lib/posixpath.py", line 392, in normpath

AttributeError: 'NoneType' オブジェクトには属性 'startswith' がありません

at org.python.core.Py.AttributeError(Py.java:177)
at org.python.core.PyObject.noAttributeError(PyObject.java:946)
at org.python.core.PyObject.__getattr__(PyObject.java:941)
at posixpath$py.normpath$27(/data/WorkArea/anoj/APPNEW/com.anoj.commons.core/lib/jython-standalone-2.7-b3.jar/Lib/posixpath.py:412)
at posixpath$py.call_function(/data/WorkArea/anoj/APPNEW/com.anoj.commons.core/lib/jython-standalone-2.7-b3.jar/Lib/posixpath.py)
    at org.python.core.PyTableCode.call(PyTableCode.java:166)
at org.python.core.PyBaseCode.call(PyBaseCode.java:137)
at org.python.core.PyFunction.__call__(PyFunction.java:347)
at sysconfig$py.f$0(/data/WorkArea/anoj/APPNEW/com.anoj.commons.core/lib/jython-standalone-2.7-b3.jar/Lib/sysconfig.py:712)
at sysconfig$py.call_function(/data/WorkArea/anoj/APPNEW/com.anoj.commons.core/lib/jython-standalone-2.7-b3.jar/Lib/sysconfig.py)
at org.python.core.PyTableCode.call(PyTableCode.java:166)
at org.python.core.PyCode.call(PyCode.java:18)
at org.python.core.imp.createFromCode(imp.java:393)
at org.python.core.util.importer.importer_load_module(importer.java:109)
at org.python.modules.zipimport.zipimporter.zipimporter_load_module(zipimporter.java:161)
at org.python.modules.zipimport.zipimporter$zipimporter_load_module_exposer.__call__(Unknown Source)
at org.python.core.PyBuiltinMethodNarrow.__call__(PyBuiltinMethodNarrow.java:47)
at org.python.core.imp.loadFromLoader(imp.java:520)
at org.python.core.imp.loadFromLoader(imp.java:520)

助けてください..

4

0 に答える 0