java远程调用python脚本_java调用python脚本并向python脚本传递参数

java远程调用python脚本_java调用python脚本并向python脚本传递参数1、安装Eclipse先安装jdk,再安装Eclipse,成功后开始建立py_java项目,在这个项目的存储目录SRC下建立test包,在test包中New-Class,新建MyDemo类,建好完成后就可以在MyDemo中写代码了2、python脚本内容importnumpyasnpfromseleniumimportwebdriverdefmain():url=’https:/…

大家好,欢迎来到IT知识分享网。

1、安装Eclipse

先安装jdk,再安装Eclipse,成功后开始建立py_java项目,在这个项目的存储目录SRC下建立test包,在test包中New-Class,新建MyDemo类,建好完成后就可以在MyDemo中写代码了

2、python脚本内容

import numpy as np

from selenium import webdriver

def main():

url = ‘https://www.tianyancha.com/login’

driver = webdriver.Chrome()

driver.get(url)

if __name__ == ‘__main__’:

a = np.ones(3)

print(a)

print(‘java 调用有第三方库的python脚本成功’)

main()

调用了两个三方库,有输出操作和打开浏览器操作

3、MyDemo类的代码(java调用python脚本)

package test;

import java.io.BufferedReader;

import java.io.InputStreamReader;

public class MyDemo {

public static void main(String[] args) {

try {

System.out.println(“start”);

String[] args1=new String[]{“python”,”D:\\pyworkpeace\\9_30_1.py”};

Process pr=Runtime.getRuntime().exec(args1);

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();

}}

public void test(){

System.out.println(“我的第一个方法C”);

}

}

4、运行结果如下所示

1146184-20170930135807731-907372241.png

不光有打印窗口,而且还弹出了天眼查的浏览器,程序完成后浏览器也就关闭了

5、java动态传递参数

这次要做的是通过java传递url给python脚本,而python脚本用浏览器打开接收到的url网页。

(1)首先定义一个url参数在java中 ;String url=”http://blog.csdn.net/thorny_v/article/details/61417386″;

(2)将参数传递给python; String[] args1 = new String[] { “python”, “D:\\pyworkpeace\\9_30.py”, url};

java中其他地方完全一样 没有改动

(3)python中需要做一点小变动,重写了一下代码

import sys

from selenium import webdriver

def main(a):

driver = webdriver.Chrome() # 打开浏览器

driver.get(a) # 浏览器打开指定页面

if __name__ == ‘__main__’:

for i in range(1, len(sys.argv)):

url = sys.argv[i]

main(url)

其中需要注意的是接收参数从sys.argv[1]开始,sys.argv[0]是python脚本的参数地址,没什么用。最后就大功告成了

//这个程序可以调用python脚本,并向python脚本中传递参数

packagetest;importjava.io.BufferedReader;importjava.io.InputStreamReader;public classtest_1 {public static voidmain(String[] args) {try{//String a=getPara(“car”).substring(1),b=”D34567″,c=”LJeff34″,d=”iqngfao”;//String[] args1=new String[]{ “python”, “D:\\pyworkpeace\\9_30_1.py”, a, b, c, d };//Process pr=Runtime.getRuntime().exec(args1);

String url=”http://blog.csdn.net/thorny_v/article/details/61417386″;

System.out.println(“start;”+url);

String[] args1= new String[] { “python”, “D:\\pyworkpeace\\9_30.py”, url};

Process pr=Runtime.getRuntime().exec(args1);

BufferedReader in= new BufferedReader(newInputStreamReader(

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();

}

}private staticString getPara(String string) {//TODO Auto-generated method stub

return null;

}

}

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/21524.html

(0)
上一篇 2024-01-18 15:15
下一篇 2024-01-18 18:00

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信