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
作 者:一支会记忆的笔
---------------------
个性 签名:真正的学习不是记住知识,而是学会如何提出问题,研究问题,解决问题。
如果觉得这篇文章对你有小小的帮助的话,记得在下方“关注”哦,博主在此感谢!