一,java調用python
在java程序中調用python,使用如下的方法。
String[] args1 = new String[]{"python", "/Users/lucus/test.py"};
Process pr = Runtime.getRuntime().exec(args1);
BufferedReader in = new BufferedReader(new InputStreamReader(pr.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
logger.info(line);
}
in.close();
pr.waitFor();
有一些需要注意的地方:
1,如果python程序執行出錯,上面的代碼並不會捕獲python的錯誤信息。需要自己先將python調試通過。
2,使用的路徑最好使用絕對路徑。如果使用相對路徑發現錯誤時,不妨試試絕對路徑。
二,java調用python並傳遞參數
java調用python時,如果要傳遞參數,java側的寫法如下:
String[] args1 = new String[]{"python", "/Users/lucus/test.py", "a", "b"};
Process pr = Runtime.getRuntime().exec(args1);
BufferedReader in = new BufferedReader(new InputStreamReader(pr.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
logger.info(line);
}
in.close();
pr.waitFor();
其中的“a”,“b”即爲傳遞給python的參數。
在python側,獲取參數的方法如下。
sys.argv[1]
sys.argv[1]可以取到a,sys.argv[2]可以取到b。
那麼sys.argv[0]可以取到的是"/Users/lucus/test.py"。