python调用java的jar包,python与java交互

  python调用java的jar包,python与java交互

  因为python本身就是脚本语言,经常调用第三方库,所以用python调用java可能比用java调用python更方便。然后,组织python调用java中需要的操作。(默认在linux的Ubuntu中调用)

  首先,您必须在linux上安装jdk。这个过程在这里不公开。所有python都带有linux。这里的默认值是python2.7。

  安装jpype

  从python调用java主要是通过python的import jpype实现的。

  jpype的安装非常简单。从http://jpype.sourceforge.net/下载JPype-0.5.4.2.zip并放在任何文件夹中。作者使用/home/usrname。

  解压缩Jpype-0.5.4.2.zip

  cd Jpype-0.5.4.2

  python setup.py安装

  安装完成。如果有错误报告权限被拒绝,请将最后一个命令改为sudo python setup.pyinstall,此时可以在python上运行。

  #python

  导入jpype

  Jpype安装完成。

  用Jpype调用Java

  让我们看一个简单调用java定制函数的例子。

  附上简单的java代码。函数是返回给定字符串的处理后的字符串,给定的两个参数返回两个数之和。

  jpypedemo类{

  PublicStaticStringsayHello(字符串用户)//注意!作为python中调用的接口函数,必须是静态的,否则python

  终端报告错误

  帮助用户;

  }

  Publicstaticintcalc(inta,int b) )//注意!作为python中调用的接口函数,必须是静态的,否则python

  终端报告错误

  返回a b;

  }

  publicstaticvoidmain(string[]args){

  }

  }

  将它打包成一个jar文件。在本例中,打包的文件名为JpypeDemo.jar,与python脚本放在同一个目录中。

  下面是python端使用java的jar包代码。

  导入jpype

  从jpype导入*

  导入os.path

  Jarpath=OS.path.abspath . #该函数用于获取当前python脚本的绝对路径。

  start JVM()/usr/local/Java/JDK 1 . 8 . 0 _ 181/JRE/lib/amd64/server/lib JVM . so ,-ea ,

  -DJ ava.class.path=% s % (jar路径/jpypedemo.jar )

  这个startJVM函数是用来加载Java虚拟机的,它的第一个参数必须是你的Java的jdk安装位置,因人而异。我的地址在上面是粗体的(!有些教程指出,可以直接从getDefaultJVMPath()函数获得Java地址。不推荐。不推荐!不推荐!这个函数得到的地址很可能是电脑上的oracle版Java,而不是自己安装的Java,所以会因为环境变量的问题出现错误。);第二个参数的自由翻译未知,所以简而言之是正确的。第三个参数是打包的jar包所在的绝对路径。可以看出,它将JpypeDemo.jar与之前获取的当前目录的路径结合在一起。

  JDclass=jclass(jpypedemo))申请Java类(Incredible()))。

  JD=JD类

  j print=java . lang . system . out . println #申请Java输出类的输出函数

  调用jprint(JD.sayHello(waw))类的sayhello函数,使用Java output函数打印Java返回值。

  调用jprint (jd.calc) 2,4)类中的加法函数,用Java输出函数打印Java返回值。

  关闭Java虚拟机。可写和未写在程序结束时自动关闭。

  关闭JVM(

  执行上述步骤以获得输出。

  公共职业稳定研究所

  六

  JVM活动报告:

  加载的类别:32

  JVM已关闭

  内容扩展:

  调用java的jar包方法

  从jpype导入*

  jvmPath=getDefaultJVMPath(

  jars=[。/first maven-1.0-snapshot-jar-with-dependencies . jar ]JVM _ CP=-DJ ava . class . path={ }

  startJVM(JVMpath,jvm_cp)).

  SDIsobj=jclass(logback ))))).

  so=sedisObj()

  printso.get_v(name0 ).

  如此打印

  打印so.get_int(

  关闭JVM(

  到目前为止,已经介绍了关于python如何调用java类的文章。关于python如何调用java类的更多信息,请搜索聚美学院之前的文章或者继续阅读下面的相关文章。未来,我想支持聚米学院。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: