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
  • 相关阅读:
    学号 20172328 《程序设计与数据结构》第八周学习总结
    172328 结对编程练习_四则运算 第一周 阶段总结
    学号 20172328 《程序设计与数据结构》实验二报告
    20172328《程序设计与数据结构》第七周学习总结
    Educoder
    Educoder
    Educoder
    Educoder
    Educoder
    Educoder
  • 原文地址:https://www.cnblogs.com/JonaLin/p/12091259.html
Copyright © 2011-2022 走看看