最近用到Java向Python傳值,找了好多的方法都是直接調用的程序,向python傳值的少之又少 要不用了就報錯說我缺乏什麼東西 要不就是沒有權限什麼的 很苦惱 通過翻閱資料 找到了不少的資料 最後仍是解決了java
public static void runbat(int jobId) throws IOException, InterruptedException { //需傳入的參數 String a =String.valueOf(jobId); System.out.println("start;;;" + a); //設置命令行傳入參數 String property1 = System.getProperty("user.dir"); String pythonpath = property1 + "\\config\\winddaydata.py"; String[] args = new String[] { "python", pythonpath, a}; Process pr = Runtime.getRuntime().exec(args); BufferedReader in = new BufferedReader(new InputStreamReader(pr.getInputStream())); String line; while ((line = in.readLine()) != null) { // line = decodeUnicode(line); System.out.println(line); //python打印流 } in.close(); pr.waitFor(); System.out.println("end"); }
這是在java的代碼只須要將python的文件名 還有參數 還有python的地址寫入進去便可python
下面是python的代碼命令行
print ("winddaydata", sys.argv[0]) for i in range(1, len(sys.argv)): //遍歷傳進的參數 print ("par", i, sys.argv[i]) jobId=sys.argv[i] //傳入的參數
最後jobid就是我要傳進的參數,這邊就能夠在後面直接用了 code
但願能夠幫到你們。。。。。也算是一點經驗get