java程序調用python

一,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"。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章