这里主要用法是将已经编写好的java代码打成一个jar包,我们直接调用其中的对象和方法。

jar包可以是多个jar包打包在一起的。

python:

这个jar包包含了一个web框架的客户端,调用rpcClient.start()后就能对服务器进行连接。

import jpype
from jpype import *#    jar包地址
jars = ["D:\\rpc_mina\\reid_client\\out\\artifacts\\reid_client_jar\\reid_client.jar"]
jvm_path = jpype.getDefaultJVMPath()
jvm_cp = "-Djava.class.path={}".format(":".join(jars))
#    开启jvm
startJVM(jvm_path, jvm_cp)#    直接获取java代码中的类对象
RpcClient = JClass("com.kai.rpc.core.RpcClient")
#    创建一个对象,直接调用其构造方法
rpcClient = RpcClient("127.0.0.1", 7788)
#    调用对象中的start()方法
rpcClient.start()
#    获取 fastjson的JSONObject类对象,然后创建一个对象
JSONObject = JClass("com.alibaba.fastjson.JSONObject")
jsonObject = JSONObject()
jsonObject.fluentPut("xxx", "12343253456")
#    创建一个实体对象
Command = JClass("com.kai.rpc.vo.Command")
command = Command()
command.setMethod("xxx")
command.setBody(jsonObject)
#    将其转化为json格式,注意toJSONString是一个静态方法,不需要实例化直接调用
JSON = JClass("com.alibaba.fastjson.JSON")
#    向服务器发送数据
rpcClient.sendMessage(JSON.toJSONString(command))

非常方便就能够直接运行java程序。

注意:

1.同一个线程中,只能启动一次jvm。

2.如果没有启动jvm,那么后续所有的代码都不会执行

3.可以通过类名直接运行main()方法,这样可以省去在python中进行连接的步骤,但是在这里客户端需要进行长连接,为了方便的操作java对象,所以没有这么做。

4.在不进行手动关闭jvm的情况下,python代码运行完后会自动关闭jvm,也就是说在这段代码中,如果没有后续的话,运行的java程序会自动被关闭

python使用Jpype调用java程序相关推荐

  1. Python利用JPype调用Java对象方法【实现在Python中调用JAVA】

    一.JPype简述 1.JPype是什么? JPype是一个能够让 python 代码方便地调用 Java 代码的工具,从而克服了 python 在某些领域(如服务器端编程)中的不足. 2.JPype ...

  2. python利用jpype调用java对象方法

    实现在python中调用JAVA 一.JPype简述 1.JPype是什么? JPype是一个能够让 python 代码方便地调用 Java 代码的工具,从而克服了 python 在某些领域(如服务器 ...

  3. matlab调用Java程序时出现 Java.lang.OutOfMemoryErrot: GC overhead limit exceeded

    matlab调用Java程序时出现 java.lang.OutOfMemoryError: GC overhead limit exceeded JDK1.6.0_37和JDK_1.7.0_60版本, ...

  4. qtp启动java程序_转: QTP六脉神剑之调用Java程序

    查看( 1147 ) / 评论( 21 ) 六脉神剑之调用程 序0Xp1zLN_0版权声明:原创作品,转载请以链接方式注明出自http://www.51testing.com/?35,否则将追究法律责 ...

  5. qtp启动java程序_QTP六脉神剑之调用Java程序

    版权声明:原创作品,转载请以链接方式注明出自,否则将追究法律责任.本文出自songfun的51Testing软件博客:不少网友对于QTP调用Java程序感到束手无策,实际上要调用Java程序是非常容易 ...

  6. Python+Jpype 调用 Java 碰壁全记录

    因为在Jython 调用 Java 碰壁全纪录中已经有了"出色"碰壁经历,此处仿照其大致过程 命令行下无差异,Eclipse中略有差异(classpath的设置方式不同所致) Ja ...

  7. python jpype 调用java之坑

    1.初始运行环境python 2.7 32位,jdk 1.8 32位,pycharm 32位 python使用jpype获取jvm位置信息,无法获取.之后使用jvm的绝对路径调用jvm,发现调用jvm ...

  8. loadrunner 调用java_LoadRunner调用Java程序—性能测试

    为了充分利用LoadRunner的场景控制和分析器,帮助我们更好地控制脚本加载过程,从而展现更直观有效的场景分析图表.本次将重点讨论LoadRunner如何调用Java测试代码,完成压力测试. 通常我 ...

  9. 【Linux】shell调用Java程序main方法通过crontab定时执行

    来源:https://blog.csdn.net/coolcooldool/article/details/51775105 最近一个项目需要写一个batch定时读取文件往数据库里插入记录,第一次写, ...

  10. java调用java程序,详细说明

    Java教程:JavaArrays工具类这个Arrays类里均为static修饰的方法(static修饰的方法可以直接通过类名调用),可以直接通过Arrays.xxx(xxx)的形式调用方法. 1)i ...

最新文章

  1. http://www.fx114.net/qa-24-116329.aspx
  2. 俄罗斯最新开源的牛掰数据库ClickHouse
  3. bat批处理重命名问题
  4. 数据中心“泡澡”散热,阿里云启用全球最大液冷数据中心支撑双11
  5. scrum流程 规划 冲刺_Scrum –困难的部分2:更快地冲刺
  6. CSS布局奇淫技巧之--各种居中
  7. Java NIO_I/O基本概念_Java中的缓冲区(Buffer)_通道(Channel)_网络I/O
  8. android 版本更新
  9. TextView 在java中使用Html设置字体大小颜色
  10. 项目部署:服务器IIS发布后本地浏览没有问题,外网访问显示无法访问
  11. 阿里巴巴高级技术专家章剑锋:大数据发展的 8 个要点
  12. python实用宝典_python 5个实用的技巧
  13. python标准正态分布表(scipy.stats)
  14. 雷神台式计算机配置,雷神新用户手册:拿到新电脑时如何简易设置参数!
  15. 3月18日短线黑马牛股公开验证
  16. ISO 14229、ISO 15765、ISO 11898的区别
  17. 5-3 凸多边形面积
  18. Liunx配置yum源与本地配置yum源
  19. 基于opencv+python的角度测量
  20. 口袋网咖已有服务器在使用怎么注销,口袋网咖进不去怎么办_口袋网咖进不去解决办法...

热门文章

  1. Java开发快递物流项目(5)
  2. 为开发者们准备的10款超棒的jQuery视频插件
  3. android studio使用方法,android studio使用教程
  4. 机器人编程常用语言汇总(WeDo/EV3/Arduino/Scratch)
  5. 关于一元线性回归、自相关性与Stata实现
  6. 基于xterm.js + socket.js的Web SSH
  7. 常用图像处理库都有哪些?
  8. [技巧]如何绕过MaxtoCode的15天限制
  9. YOLOv3中Anchor理解
  10. Steam[ASF]挂卡(挂游戏时间)纯新手教学