2024-10-01 00:19:09 发布
网友
我有一个maven scala项目,其中有一个scala对象(myObject),如下所示
项目名称
myObject的主要功能定义为
def main(args: Array[String]): Unit = { --stuff }
我需要创建一个python包装器脚本,从用户那里获取一些参数,并将这些参数传递给myObject。我该怎么做呢?到目前为止,我有一个python脚本,它有一个main,使用argparse接收一些参数,但不确定如何继续
如果我能准确地理解,Py4j是您希望在scala编译为JVM字节码时运行的库,您可以使用Py4j运行scala或java方法
以下是py4j网站主页的摘要:
Py4J使运行在Python解释器中的Python程序能够动态访问Java虚拟机中的Java对象。方法的调用就好像Java对象驻留在Python解释器中一样,Java集合可以通过标准的Python集合方法访问。Py4J还支持Java程序回调Python对象。Py4J是根据BSD许可证发行的
下面是一个使用Py4J的简单示例。下面的Python程序从JVM创建一个java.util.Random实例,并调用它的一些方法。它还访问一个自定义Java类AdditionApplication来添加生成的数字
>>> from py4j.java_gateway import JavaGateway >>> gateway = JavaGateway() # connect to the JVM >>> random = gateway.jvm.java.util.Random() # create a java.util.Random instance >>> number1 = random.nextInt(10) # call the Random.nextInt method >>> number2 = random.nextInt(10) >>> print(number1, number2) (2, 7) >>> addition_app = gateway.entry_point # get the AdditionApplication instance >>> value = addition_app.addition(number1, number2) # call the addition method >>> print(value) 9
如果我能准确地理解,Py4j是您希望在scala编译为JVM字节码时运行的库,您可以使用Py4j运行scala或java方法
以下是py4j网站主页的摘要:
Py4J使运行在Python解释器中的Python程序能够动态访问Java虚拟机中的Java对象。方法的调用就好像Java对象驻留在Python解释器中一样,Java集合可以通过标准的Python集合方法访问。Py4J还支持Java程序回调Python对象。Py4J是根据BSD许可证发行的
下面是一个使用Py4J的简单示例。下面的Python程序从JVM创建一个java.util.Random实例,并调用它的一些方法。它还访问一个自定义Java类AdditionApplication来添加生成的数字
相关问题 更多 >
编程相关推荐