zoukankan      html  css  js  c++  java
  • java中怎么调用python 脚本

    调用方法:

    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
  • 相关阅读:
    PHP+MySQL
    Appstore排名前十的程序员应用软件
    架构师的平凡之路
    程序员,如何三十而立?
    不懂技术也可以轻松开发一款APP
    php语法学习:轻松看懂PHP语言
    你真的了解软件测试行业吗?
    十个程序员必备的网站推荐
    从更高点看软件开发的侧重点
    php如何实现文件下载
  • 原文地址:https://www.cnblogs.com/JonaLin/p/12091259.html
Copyright © 2011-2022 走看看