首页 > 编程语言 > 详细

java中怎么调用python 脚本

时间:2019-12-24 14:48:31      阅读:78      评论:0      收藏:0      [点我收藏+]

调用方法:

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class PythonInvoke {
    public static void invokePy(String[] args) {

        try {
            Process process = Runtime.getRuntime().exec(args);
            //防止Python输出中文时乱码
            BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream(),"GBK"));
            String line = null;
            while ((line = in.readLine()) != null) {
                System.out.println(line);
            }
            in.close();
            //java代码中的process.waitFor()返回值为0表示我们调用python脚本成功,
            //返回值为1表示调用python脚本失败,这和我们通常意义上见到的0与1定义正好相反
            int re = process.waitFor();
            System.out.println(re);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

测试 Test():

import com.cargosmart.alarm.utils.PythonInvoke;

public class Test {

    public static void main(String[] args) {
        String []para  = new String[] {"python", "D://hello.py"};
        PythonInvoke.invokePy(para);

        System.out.println("-----有参------");
        String[] arguments = new String[] {"python", "D://hello1.py","lei","23"};
        PythonInvoke.invokePy(arguments);
     
    }

}

 

python文件

 

  hello.py

def hello():
    print(Hello,Python)
 
if __name__ == __main__:
    hello()

 hello1.py

import sys
 
def hello(name,age):
    print(name:+name)
    print(age:+age)
 
if __name__ == __main__:
    hello(sys.argv[1], sys.argv[2])

 

控制台结果:

Hello,Python
0
-----有参------
name:lei
age:23
0

java中怎么调用python 脚本

原文:https://www.cnblogs.com/JonaLin/p/12091259.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!