Java調用Python程序並向Python傳值

最近用到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

相關文章
相關標籤/搜索