JAVA調python指令碼

來源:互聯網
上載者:User
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) {
try {
System.out.println("start");
Process pr = Runtime.getRuntime().exec("python test.py");
BufferedReader in = new BufferedReader(new InputStreamReader(
pr.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
System.out.println(line);
}
in.close();
pr.waitFor();
System.out.println("end");
} catch (Exception e) {
e.printStackTrace();
}
}
}
如果在eclipse中直接運行報如下錯誤:
java.io.IOException: Cannot run program "python": CreateProcess error=2
則配置Run Configuration中的Enviroment,增加PATH變數,見附件:

在java application中調用Process proc = Runtime.getRuntime().exec("python xx.py");是可以的【xx.py直接位於工程目錄下面】

在tomcat中的servlet中使用Process proc = Runtime.getRuntime().exec("python xx.py");時,開始是沒反應。 排查結果應該是pyhon命令可以找到(或者直接輸入e:\\Python\\python.exe絕對路徑) x.x.py 檔案我是放在根目錄下,故意把名字寫錯成xy.py.,結果都是沒反應【彷彿這條語句沒有執行】
=》應該是py檔案找不到。我用了絕對路徑搜尋py檔案。Process proc = Runtime.getRuntime().exec("python d:\\xx.py");這個倒是可以。
【目前總結 就是py檔案的路徑問題】
  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.