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小时内删除。
发表评论