2017-03-03 37 views
0

私はJythonでJavaで実行したいpythonスクリプトを持っています。 Pythonスクリプトは2つの引数を受け入れます。スクリプトに引数を追加するにはどうすればよいですか?Jythonで引数を追加PythonInterpreterを "execfile"関数に追加

PythonInterpreter interpreter = new PythonInterpreter(); 
interpreter.execfile("C:/path/to/file/__main__.py"); 

ありがとうございます!

答えて

1

execfileは、ローカルネームスペースでスクリプトを実行します。あなたは、単にexecへの呼び出しの前にsys.argvに値を割り当てることができます:

PythonInterpreter interpreter = new PythonInterpreter(); 
interpreter.exec(
    "import sys\n" 
    +"sys.argv = ['Foo', 'Bar']"); 
interpreter.execfile("J:/test.py"); 

スクリプトである場合:

import sys 

print(sys.argv) 

プリント:

['Foo', 'Bar'] 

私はに見えましたあなたのコメントの質問、それはあなたが設定する必要があるように見えるpython.pathPropertiesオブジェクトではPythonInterpreter.initializeに渡します。これを使って引数を渡すこともできます:

Properties p = new Properties(); 
p.setProperty("python.path", "J:/WS/jython"); // Sets the module path 

PythonInterpreter.initialize(System.getProperties(), p, new String[]{ "Foo", "Bar" }); 

PythonInterpreter interpreter = new PythonInterpreter(); 
interpreter.execfile("J:/WS/jython/main.py"); 
+0

ありがとう@Jorn Vernee私のPythonスクリプトがいくつかのファイルをconstする場合は、何とかそれらをインポートする必要がありますか? – Michael

+0

@Michael私は答えを更新しました。 –

+0

ありがとうございました。 – Michael

関連する問題