2017-03-03 76 views
0

添加參數我有一個python腳本,我想在Java中使用Jython來執行。 Python腳本接受2個參數。我怎樣才能爲腳本添加參數?在Jython的PythonInterpreter到「的execfile」功能

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

謝謝!

回答

1

execfile執行在本地命名空間中的腳本。你可以簡單地在現有的呼叫值分配給sys.argvexec

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腳本常量有幾個文件,那麼我需要以某種方式導入它們嗎? – Michael

+0

@Michael我更新了答案。 –

+0

謝謝@Jorn的幫助! – Michael