一、环境确认:

首先,要确认安装的jdk版本是1.8以上;其次,jdk安装位数与python安装的位数一致,及要么一起64位版本要么一起32版本。

(以上2点不满足均会报错,比如:not found jvm.dll)

二、安装说明:

1、使用pip直接安装jpype库

py -3 -m pip install jpype1

2、使用手动下载及安装jpype库:

① 首先要确认python安装的是哪个版本及位数的,32位与64位的jpype库安装包不一致,也互不支持。

查看版本:

windows+R》cmd》py -3

查看支持的包的属性:

import pip._internalp

print(pip._internal.pep425tags.get_supported())

② 进入下载地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/ 找到支持的安装包,下载至本地

③ dos命令窗口进入安装包本地所在的文件夹,执行安装命令: py -3 -m pip install 完整的安装包名,

比如:我电脑安装的python是3.7 的64位,那么下载的是JPype1‑0.7.0‑cp37‑cp37m‑win_amd64.whl ,

安装命令是:py -3 -m pip install JPype1‑0.7.0‑cp37‑cp37m‑win_amd64.whl

三、将java类方法打包成 *.jar 文件:

1、将java类方法写入“类名.java”的文件中保存(java中文件名必须与类型一致)

2、(windows+R》cmd)dos命令窗口进入到“类名.java”文件夹所在位置

3、编译java类方法,命令:javac 类名.java

4、打包成.jar文件,命令: jar cvf 类型名.jar 类名.class

四、python调用java程序:

1、注意python文件名不能命名成与库名jpype一致,否则会报jpype 没有 startJVM/shutdownJVM 属性

2、python代码:

import jpype

jvmPath = r"C:\Program Files (x86)\Java\jre8\bin\server\jvm.dll"    #java虚拟机的路径

ext_classpath = r"C:/Users/Administrator/Desktop/cc/Test.jar"    #所有调用的方法的绝对路径

#加载进方法,如果JVM没有启动,就启动JVM

if not jpype.isJVMStarted():        #这个判断非常重要,因为JVM在一个进程内就会自动关闭,后面在调用就会报错

jpype.startJVM(jvmPath,"-ea", "-Djava.class.path=%s" % ext_classpath)

#RcpClass = jpype.JClass("com.Test")

RcpClass = jpype.JClass("Test")      #继承类及方法,Test为类名

rcp = RcpClass()            #实例化

EncryptData= rcp.getSum(1,2)      #调用getSum方法

print(EncryptData)

if jpype.isJVMStarted():

jpype.shutdownJVM()            #关闭java虚拟机

python调用java方法_python调用java相关推荐

  1. python调用java方法_python调用Java方法传入HashMap ArrayList

    1.Java代码: package com; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap ...

  2. Java方法完整调用链生成工具

    1. 前言 在很多场景下,如果能够生成Java代码中方法之间的调用链,是很有帮助的,例如分析代码执行流程.确认被修改代码的影响范围.代码审计/漏洞分析等. IDEA提供了显示调用指定Java方法向上的 ...

  3. java方法的构造,java方法与构造

    public class StaticClass { static int i = 50; int y; // 构造只能有访问修饰符public.protected.private 修饰 (访问修饰符 ...

  4. Java方法,调用,static关键字

    1.1Java方法 1.1.1声明一个方法的具体语法格式如下: 修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2,..){ 执行语句 --- return 返回值; } l 修饰符: ...

  5. java 调用祖父方法_在Java中调用祖父母方法:您不能

    java 调用祖父方法 在文章保护的重点中,我详细介绍了"受保护"如何扩展"包私有"访问. 我在那儿写道: 你能做的是 覆盖子类中的方法或 使用关键字super ...

  6. java 方法重载调用_Java方法的定义以及调用、方法重载、可变参数以及递归

    何谓方法 Java方法是语句的集合,它们在一起执行一个功能 方法是解决一类问题的步骤的有序组合 方法包含于类或对象中 方法在程序中被创建,在其他地方被引用 System.out.println();/ ...

  7. java钟使用dwr_DWR中各种java方法的调用

    DWR是一个框架,简单的说就是能够在javascript直接调用java方法,而不必去写一大堆的javascript代码.它的实现是基于ajax的,可以实现无刷新效果. 网上有不少DWR的例子,但大都 ...

  8. beetl调用java方法_Beetl通过JAVA接口获取JAVA中的变量

    标签: 模板语言绑定变量都是程序主动绑定到beetl,经过努力现在在beetl上实现了模板语言主动发出请求,来执行绑定. 最近做项目用到beetl,因为模板需要用到的变量很多,如果直接绑定,系统消耗很 ...

  9. Java方法的调用以及参数传递

    一.方法的调用及参数的传递 1.方法的调用 1.1 定义方法的语法 [访问修饰符] 返回值类型 方法名([参数类型 参数1,参数类型 参数2,-]){ ​ 方法体 } 详解: 访问修饰符:用于修饰这个 ...

最新文章

  1. 机器翻译注意力机制及其PyTorch实现
  2. 丢失或损坏NDF文件如何附加数据库
  3. pyqt 槽任意参数_PyQt5快速入门(二)PyQt5信号槽机制
  4. Java线程详解(2)-创建与启动
  5. Power Query 应用领域有哪些?
  6. Android开发实践:利用ProGuard进行代码混淆
  7. 【CV】语义分割:最简单的代码实现!
  8. stm32使用DAP下载程序
  9. python matplotlib使用ax绘图
  10. html.fromhtml 加载图片,TextView使用html.fromhtml加载html并显示图片
  11. 虚拟机装打印服务器,蜗牛矿渣装机教程 篇五:PVE虚拟机下OPENWRT如何安装USB打印机P1106...
  12. 【linux】什么是栈回溯
  13. C# 网上收集的一些所谓的开源项目
  14. 关于Python包导入报错的总结
  15. 2018招商银行春招笔试编程题第一题
  16. win7网络看不到win10计算机,网络共享中win7能找到win10,但win10找不到win7
  17. 神经网络程序设计课学习心得
  18. 游戏数据库版本更新神器Flyway
  19. SQL注入测试神器sqlmap
  20. 期货反手有几种做(期货里面什么叫反手)

热门文章

  1. 分享Silverlight/WPF/Windows Phone/HTML5一周学习导读(4月2日-4月8日)
  2. HDU-2688 Rotate
  3. 在ASP.NET中使用Global.asax文件
  4. 百度编辑器在编辑视频时src丢失的问题
  5. 严重: StandardServer.await: create[8005]:
  6. SQL Server 2005“备份集中的数据库备份与现有的数据库不同”解决方法此信息转载自BlueSky's Blog,www.heuupk.com,为尊重无价的知识请保留此版权信息。...
  7. C#的static,interface,virtual,abstract,override的区别用法
  8. MYSQL(04)-间隙锁详解
  9. promise使用promise进行封装http请求接口
  10. Linux的换网变化IP进行固定IP