前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >探索Java中如何执行python脚本

探索Java中如何执行python脚本

作者头像
雷子
发布2021-03-15 14:31:59
1.4K0
发布2021-03-15 14:31:59
举报
文章被收录于专栏:雷子说测试开发

 一个偶然的场景,笔者需要在java代码中执行某个python脚本,并且需要向脚本中传递参数,有可能的话,还要获取该脚本的某些执行结果,回到主程序中继续执行下去。

没有思路之前,狭隘的想法是,java中怎么能执行python脚本呢,两种不同的语言,java依赖jar包,python需要引入各种库。想到这里,灵机一动,前辈们的智慧如此博大精深,肯定有可以集成的的jar包,于是乎,发现了jython.jar。jython是用java语言编写的python实现,可以运行在任何支持JVM的环境中,可以无缝集成到java平台上。哇~如此强大,我十分欣喜,jython在上,受小弟一拜。于是乎,开始了各种神科普(这里有一个比较基础的可以参考看看https://www.cnblogs.com/sesamfox/articles/2313040.html),一个小时以后我冷静了下来,还是需要花点时间来研究下的,此方案作为备用,值得研究下,毕竟也是很强大的。

 鉴于时间的催促,还有没有其它更快捷简便的方法呢?后来了解到了java的Runtime,Runtime 类代表着Java程序的运行时环境,每个Java程序都有一个Runtime实例,该类会被自动创建,我们可以通过Runtime.getRuntime() 方法来获取当前程序的Runtime实例,通过这个可以获取到jvm的信息,关键是还可以执行系统命令。好的,我又开心了,因为这意味着我的脚本可以执行了。显然这个方案能让我更简单更快的实现我想要的,话不多说,上代码

Runtime.getRuntime().exec(args)中传的参数,除了可以传数组以外,还可以传字符串,字符串中以空格隔开参数,例如 exec("python 脚本路径 参数1 参数2")。python脚本中,使用sys.argv可以接收到从java程序中传入的参数,这样,就顺利打通了。如果需要从脚本中回传一些结果到主程序的话,只需要在脚本中将需要的结果打印到控制台,然后主程序用流去读取就可以了。

 好的,到这里我的问题就完美解决了。不过还有很多更广阔的知识需要去了解,去实践,语言是强大的,我们是渺小的,要不断的探索才能更好的为我们所用。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-07-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 雷子说测试开发 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档