1.环境准备

windows 7(64位)+JDK(64位)+Python(64位)+eclipse+pycharm

还需要一个作为桥梁的工具包,jpype1,这个工具包可以启动jvm,使java代码依然运行在jvm中。

实验过程中使用的各个工具的具体版本如下:

JDK(64位):1.8.0_102

Python(64位):3.7.2

jpype1(64位):0.7.2  直接pip install pype1来安装

eclipse+pycharm是两款开发工具,主要用来编写java和python代码

2.编码java代码,打jar包

工具安装完毕之后,接下来借助eclipse开发java代码,并打jar包。

1):开发java代码

2)打jar包

3)打jar包之后,获得了jar文件。

4)开发python脚本

#引入jpype模块

importjpypeimportos"""基本的开发流程如下:

①、使用jpype开启jvm

②、加载java类

③、调用java方法

④、关闭jvm(不是真正意义上的关闭,卸载之前加载的类)"""

#①、使用jpype开启虚拟机(在开启jvm之前要加载类路径)

#加载刚才打包的jar文件

jarpath = os.path.join(os.path.abspath("."), "D:\\hr.jar")#获取jvm.dll 的文件路径

jvmPath =jpype.getDefaultJVMPath()#开启jvm

jpype.startJVM(jvmPath,"-ea", "-Djava.class.path=%s" %(jarpath))#②、加载java类(参数是java的长类名)

javaClass = jpype.JClass("com.java.python.JavaPython")#实例化java对象#javaInstance = javaClass()

#③、调用java方法,由于我写的是静态方法,直接使用类名就可以调用方法

javaClass.main()#④、关闭jvm

jpype.shutdownJVM()pass

5)运行程序

6)如果是调用多个jar文件的话,要在jvm启动时指定jar文件路径,

jarpath,jarpath2,jarpath3,jarpath4是jar文件路径。

jpype.startJVM(jvmPath,"-ea", "-Djava.class.path=%s;%s;%s;%s" % (jarpath,jarpath2,jarpath3,jarpath4))

python调用java文件_Python程序中调用Java代码的实践相关推荐

  1. python 类函数调用外部函数_python类中调用外部函数,python 函数中 定义类

    Q1:python函数里的数组如何在函数外调用出来 使用返回值的方法有两种: 可以直接把调用的函数作为变量使用 可以用调用函数给一个变量赋值 第一种情况见如下例子: l = [1,2,3,4,5] d ...

  2. python list元素合并_Python程序中使用表达式合并List列表元素 - Python - 服务器之家...

    Python程序中使用表达式合并List列表元素 发布时间:2014-02-06 来源:服务器之家 在实现一个产品过程中,使用 Python Extension 需要一个语句将一个列表中子列表合并成为 ...

  3. Java相对路径调用dll文件,VS项目中调用他人提供的.lib和.dll文件的用法(绝对路径和相对路径)...

     开发平台:vs2013 他人提供的动态库文件,包含 .lib 文件和 .dll 文件 在VS的工程中常常要设置头文件的包含路径和库文件的包含路径,当然你可以使用绝对路径,但是如果你这样设置了你只 ...

  4. python有null吗_Python世界中, 有Java中那种 @NotNull 吗( JetBrains提供的 ) ?

    2017/2/6 描述 在写Java的过程中, 这两个东西非常有用( 对付null ) 那么, Python世界中, 可否有类似实现 ? 检查函数的返回值 ( @NotNull 提供 ) 检查函数的形 ...

  5. 本地方法(JNI)——从java 程序中调用C函数

    [0]README 1) 本文部分文字描述 转自 core java volume 2 , 旨在理解 本地方法--从java 程序中调用C函数 的基础知识 : 2) for source code, ...

  6. python调用安卓相机_Android在应用程序中调用相机程序

    有时,需要在应用程序中调用其他Android上已经安装完好的应用程序, 以下是一个调用相机(com.android.camera)的demo程序: PackageInfo pi = null; try ...

  7. C++程序中调用其他exe可执行文件方法

    在编程过程中有个需求,点击某个按钮需要弹出系统的声音控制面板.在网上查了下代码中调用其他exe程序或者打开其他文件的方法. 自己借鉴网上的文章稍微总结下,加深下印象,也给方便自己用. 在代码中调用其他 ...

  8. 在VB应用程序中调用Excel2000

    Visual Basic简称(VB)是设计Windows应用程序强有力的开发工具,"全球绝大多数Windows应用程序都是用VB开发的": Excel是目前使用最广泛的办公应用软件 ...

  9. Linux jsp php集成环境,ImageMagick在程序中调用(linux环境,jsp,php)

    最近发现图片格式为cmyk时,图片上传浏览器不能正常显示,图片缩放会变成黑屏, 后来通过google发现imagemagick的功能很强大,安装可以采用两种方法,1)直接与php编译安装,在程序中调用 ...

最新文章

  1. ASP.NET MVC5+EF6+EasyUI 后台管理系统(46)-工作流设计-设计分支
  2. Python setup.py开发与安装
  3. Windows 系统优化与瘦身
  4. 网站建设前的准备工作你了解多少?
  5. python3中使用subprocess模块执行外部命令
  6. CH - 6201 走廊泼水节(最小生成树,水题)
  7. workaround for COM_ATTRFRG_GEN 066
  8. Dynamics CRM2011 通过DeveloperToolkit在VS中部署遇到的问题
  9. Java 错误:找不到或无法加载主类(源文件中含有包名 package)
  10. html表格的形式制作调查问卷,问卷调查表格式,问卷调查怎么制作?
  11. wpa/wpa2无线网pin码破解
  12. 打印机无法双面打印处理办法
  13. Android 仿京东商品分类(简单实现 仅供参考)
  14. 顺丰速运面试java,顺丰三面Java后端面经分享
  15. klg-jpa:spring-data-jpa 最佳实践
  16. 2014年4月清明节厦门之旅
  17. 图片与Base64数据转换存储
  18. Iconfont图标的使用方法
  19. 关于参与新星计划的那一刻
  20. Libra R-CNN: Towards Balanced Learning for Object Detection

热门文章

  1. navicate连接远程数据库
  2. c语言十六实验答案,《C语言》上机实验题及参考答案
  3. 10款你应该了解的开源安全工具
  4. Android Studio小技巧
  5. SharePoint 2013 配置InfoPath 列表表单
  6. Revit 2011 二次开发之Ribbon
  7. java 生产者消费者同步_经典线程同步问题(生产者消费者)--Java实现
  8. 计算机硬件的五大单元
  9. 一般技术书籍出版版税多少_如何为您的技术书籍寻找出版商
  10. 数据概览_2015年概览:开源年鉴