System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种在Java程序中执行Python代码的方法、装置和电子设备制造方法及图纸_技高网

一种在Java程序中执行Python代码的方法、装置和电子设备制造方法及图纸

技术编号:40603131 阅读:4 留言:0更新日期:2024-03-12 22:08
本公开涉及一种在Java程序中执行Python代码的方法、装置和电子设备。其中,在Java程序中执行Python代码的方法包括:响应于目标Java程序中的Java代码对Python代码的调用请求,利用Python接口组件,从目标Java程序依赖的Python模块中,调用Python代码;以及利用Python接口组件,将Python代码的执行结果返回给Java代码;其中,Python接口组件和Python模块的执行环境是在目标Java程序的执行过程中配置的,Python接口组件以及Python模块存在于目标Java程序的SDK包中。

【技术实现步骤摘要】

本公开涉及软件,尤其涉及一种在java程序中执行python代码的方法、装置和电子设备。


技术介绍

1、相关技术中,在部分java应用程序中,可以实现python代码的调用。例如,用户可以在运行机器上安装python和相关接口组件(例如,jep(java embedded python))的运行环境并进行环境配置,然后通过接口组件来调用python。又例如,用户可以编译python源码,然后直接调用python解释器接口执行python代码。

2、但是,无论上述哪一种方案,都需要java应用程序的运行机器上安装python和相关接口组件的开发环境,并进行环境配置,安装过程非常复杂,并且当需要提供java sdk给调用方时,调用方也需要安装python和相关接口组件的开发环境。并且在安卓环境中,尚无在java应用程序中,执行python代码的解决方案。

3、因此,如何高效、便捷的在java应用程序中,执行python代码,是亟待解决的技术问题。


技术实现思路

1、为克服相关技术中存在的问题,本公开提供一种在java程序中执行python代码的方法、装置和电子设备。

2、根据本公开实施例的第一方面,提供一种在java程序中执行python代码的方法,包括:响应于目标java程序中的java代码对python代码的调用请求,利用python接口组件,从所述目标java程序依赖的python模块中,调用所述python代码;以及利用所述python接口组件,将所述python代码的执行结果返回给所述java代码;其中,所述python接口组件和所述python模块的执行环境是在所述目标java程序的执行过程中配置的,所述python接口组件以及所述python模块存在于所述目标java程序的sdk包中。

3、在一些实施例中,通过以下方式将所述python接口组件以及所述目标java程序依赖的python模块集成到所述目标java程序的sdk包中:将所述python接口组件以及所述目标java程序依赖的python模块进行压缩处理,得到python压缩包;将所述python压缩包,集成到所述目标java程序的sdk包中;所述方法还包括:在所述目标java程序的初始化过程中python,所述目标java程序使用的操作系统,根据已配置好的所述python接口组件和所述python模块的执行环境的信息,从所述python压缩包中加载所述python接口组件和所述python模块。

4、在一些实施例中,所述python接口组件包括jep组件;通过以下方式将所述python接口组件以及所述目标java程序依赖的python模块集成到所述目标java程序的sdk包中:将所述jep组件以及所述目标java程序依赖的python模块进行压缩处理,得到python压缩包;将所述python压缩包,集成到所述目标java程序的sdk包中;所述方法还包括:在所述目标java程序的初始化过程中,所述目标java程序使用的操作系统,根据已配置好的所述jep组件和所述python模块的执行环境的信息,从所述python压缩包中加载所述jep组件和所述python模块。

5、在一些实施例中,所述目标java程序使用的操作系统为安卓系统;所述利用python接口组件,从所述目标java程序依赖的python模块中,调用所述python代码,包括:响应于当前线程中无python解释器,所述jep组件创建python解释器;所述jep组件,将被调用的python代码传递给所述python解释器,指示所述python解释器从所述python模块中调用所述python代码;所述利用所述python接口组件,将所述python代码的执行结果返回给所述java代码,包括:所述jep组件,将所述python解释器执行所述python代码的结果返回给所述java代码。

6、在一些实施例中,所述python接口组件包括python解释器;通过以下方式将所述python接口组件以及所述目标java程序依赖的python模块集成到所述目标java程序的sdk包中:将所述python解释器,以及所述目标java程序依赖的python模块进行压缩处理,得到python压缩包;将所述python压缩包,集成到所述目标java程序的sdk包中;所述方法还包括:在所述目标java程序的初始化过程中,所述目标java程序使用的操作系统,根据已配置好的所述python解释器和所述python模块的执行环境的信息,从所述python压缩包中加载所述python解释器和所述python模块。

7、在一些实施例中,通过以下方式配置所述python接口组件的执行环境:在所述目标java程序的初始化代码中,利用所述目标java程序使用的操作系统提供的应用程序编程接口或命令行工具,对所述python接口组件和所述python模块的环境变量进行设置,以配置所述python接口组件和所述python模块的执行环境。

8、根据本公开实施例的第二方面,提供一种在java程序中执行python代码的装置,包括调用模块,用于响应于目标java程序中的java代码对python代码的调用请求,利用python接口组件,从所述目标java程序依赖的python模块中,调用所述python代码;以及返回模块,用于利用所述python接口组件,将所述python代码的执行结果返回给所述java代码;其中,所述python接口组件和所述python模块的执行环境是在所述目标java程序的执行过程中配置的,所述python接口组件以及所述python模块存在于所述目标java程序的sdk包中。

9、根据本公开实施例的第三方面,提供一种车辆,存储有一组指令集,所述指令集被所述车辆执行,以实现本公开第一方面所提供的在java程序中执行python代码的方法。

10、根据本公开实施例的第四方面,提供一种电子设备,包括:处理器;用于存储所述处理器可执行指令的存储器;所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现本公开第一方面所提供的在java程序中执行python代码的方法。

11、根据本公开实施例的第五方面,提供一种计算机可读存储介质,其上存储有计算机程序指令,该程序指令被处理器执行时实现本公开第一方面所提供的在java程序中执行python代码的方法的步骤。

12、本公开的实施例提供的技术方案可以包括以下有益效果:

13、本公开提供的实施例中,将python接口组件以及目标java程序依赖的python模块集成于目标java程序的sdk包中,在目标java程序的执行过程中配置python接口组件以及python模块的执行环境;当目标java程序中的java代码对python代码进行调用时,利用python接口组件,调用python模块中本文档来自技高网...

【技术保护点】

1.一种在Java程序中执行Python代码的方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,通过以下方式将所述Python接口组件以及所述目标Java程序依赖的Python模块集成到所述目标Java程序的SDK包中:

3.根据权利要求2所述的方法,其特征在于,所述Python接口组件包括jep组件;

4.根据权利要求3所述的方法,其特征在于,所述目标Java程序使用的操作系统为安卓系统;

5.根据权利要求2所述的方法,其特征在于,所述Python接口组件包括Python解释器;

6.根据权利要求1~5中任一项所述的方法,其特征在于,通过以下方式配置所述Python接口组件的执行环境:

7.一种在Java程序中执行Python代码的装置,其特征在于,包括:

8.一种电子设备,其特征在于,包括:

9.一种计算机可读存储介质,其上存储有计算机程序指令,其特征在于,该程序指令被处理器执行时,以实现所述权利要求1-6中任一所述的在Java程序中执行Python代码的方法的步骤。

10.一种车辆,其特征在于,

...

【技术特征摘要】

1.一种在java程序中执行python代码的方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,通过以下方式将所述python接口组件以及所述目标java程序依赖的python模块集成到所述目标java程序的sdk包中:

3.根据权利要求2所述的方法,其特征在于,所述python接口组件包括jep组件;

4.根据权利要求3所述的方法,其特征在于,所述目标java程序使用的操作系统为安卓系统;

5.根据权利要求2所述的方法,其特征在于,所述python...

【专利技术属性】
技术研发人员:邓银华路兴晓许倜陈永波
申请(专利权)人:国科础石重庆软件有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1