python转java代码java 调⽤python 过程中解决python 第三⽅库问题
java调⽤python过程中解决python第三⽅库问题
Java对于简单python脚本还可以识别运⾏,但是⼀旦脚本有import,Java运⾏报错no module named 第三⽅库名。 下⾯介绍⼀种调⽤⽅式解决上述问题。 python 部分代码:
java调⽤代码:
执⾏java程序,返回结果截图:
此⽅式调⽤解决了python第三⽅库的问题,但是java程序通过控制台接收python脚本接收返回结果,⽽不是以python脚本函数的return 返回结果。如果python脚本中存在多个print,则返回结果会把所有print⼀起接收(注意!)。#encoding:utf-8import  numpy as  np import  pandas as  pd import  math import  sys fileurl = sys .argv [1]  # 接收第⼀个参数point = sys .argv [2]  # 接收第⼆个参数#函数str=coverpolygon (fileurl ,point )print (str )
1
2
3
4
5
6
7
8
9
10public  static  void  main (String [] args ) throws  IOException , InterruptedException {  String fileurl ="D:/route/⾼程点-350.csv";  String point ="101.89405013,30.02698289,3301;102.14444407,29.56780298,3301;43.1,20.1,6301,1";    //通过原⽣⽅式调⽤,解决python ⽂件引⼊第三⽅库的问题  //第⼀个参数默认是python,第⼆个参数python 脚本路径,第三和第四个参数是python 要接收的参数        String [] argg = new  String [] { "python", "D:/route/cover_change.py", fileurl , point };          Process pr = Runtime .getRuntime ().exec (argg ); 
              BufferedReader in = new  BufferedReader (new  InputStreamReader (pr .getInputStream ()));        String line ;        String result = "";        //接收返回结果        while  ((line = in .readLine ()) != null ) {          result += line ;        }        System .out .println (result );        in .close ();        pr .waitFor ();      }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。