首页 > 编程 > Python > 正文

Java调用Python

2019-11-10 19:09:41
字体:
来源:转载
供稿:网友

1. 在命令行中调

TestCallPython.java

package com.brown;import java.io.BufferedReader;import java.io.InputStreamReader;public class TestCallPython { public static void main(String[] args) { try { int number1 = 10; int number2 = 32; PRocessBuilder processBuilder = new ProcessBuilder("python", "C:/test.py", "" + number1, "" + number2); Process progress = processBuilder.start(); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(progress.getInputStream())); int result = new Integer(bufferedReader.readLine()).intValue(); System.out.println("value is : " + result); } catch (Exception e) { // TODO: handle exception } }}

C:/test.py

import sysprint(int(sys.argv[1])+int(sys.argv[2]))

注意: 这种方式只能接收到python里print的数据。所以如果你需要返回值,可以把返回值打印出来;可能返回值里面有日志等你不需要的数据,你只需把你需要的返回值放在print结果的最后一行,然后读取最后一行。下面是读取返回值(最后一行)的代码:

BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(progress.getInputStream()));Stream<String> stream = bufferedReader.lines();List<Object> lines = stream.collect(Collectors.toList());String result = lines.get(lines.size()-1).toString();

2. 使用Jython

http://blog.csdn.net/xingjiarong/article/details/49424253


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表