python调用java方法_python调用java
一、环境确认:
首先,要确认安装的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相关推荐
- python调用java方法_python调用Java方法传入HashMap ArrayList
1.Java代码: package com; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap ...
- Java方法完整调用链生成工具
1. 前言 在很多场景下,如果能够生成Java代码中方法之间的调用链,是很有帮助的,例如分析代码执行流程.确认被修改代码的影响范围.代码审计/漏洞分析等. IDEA提供了显示调用指定Java方法向上的 ...
- java方法的构造,java方法与构造
public class StaticClass { static int i = 50; int y; // 构造只能有访问修饰符public.protected.private 修饰 (访问修饰符 ...
- Java方法,调用,static关键字
1.1Java方法 1.1.1声明一个方法的具体语法格式如下: 修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2,..){ 执行语句 --- return 返回值; } l 修饰符: ...
- java 调用祖父方法_在Java中调用祖父母方法:您不能
java 调用祖父方法 在文章保护的重点中,我详细介绍了"受保护"如何扩展"包私有"访问. 我在那儿写道: 你能做的是 覆盖子类中的方法或 使用关键字super ...
- java 方法重载调用_Java方法的定义以及调用、方法重载、可变参数以及递归
何谓方法 Java方法是语句的集合,它们在一起执行一个功能 方法是解决一类问题的步骤的有序组合 方法包含于类或对象中 方法在程序中被创建,在其他地方被引用 System.out.println();/ ...
- java钟使用dwr_DWR中各种java方法的调用
DWR是一个框架,简单的说就是能够在javascript直接调用java方法,而不必去写一大堆的javascript代码.它的实现是基于ajax的,可以实现无刷新效果. 网上有不少DWR的例子,但大都 ...
- beetl调用java方法_Beetl通过JAVA接口获取JAVA中的变量
标签: 模板语言绑定变量都是程序主动绑定到beetl,经过努力现在在beetl上实现了模板语言主动发出请求,来执行绑定. 最近做项目用到beetl,因为模板需要用到的变量很多,如果直接绑定,系统消耗很 ...
- Java方法的调用以及参数传递
一.方法的调用及参数的传递 1.方法的调用 1.1 定义方法的语法 [访问修饰符] 返回值类型 方法名([参数类型 参数1,参数类型 参数2,-]){ 方法体 } 详解: 访问修饰符:用于修饰这个 ...
最新文章
- 机器翻译注意力机制及其PyTorch实现
- 丢失或损坏NDF文件如何附加数据库
- pyqt 槽任意参数_PyQt5快速入门(二)PyQt5信号槽机制
- Java线程详解(2)-创建与启动
- Power Query 应用领域有哪些?
- Android开发实践:利用ProGuard进行代码混淆
- 【CV】语义分割:最简单的代码实现!
- stm32使用DAP下载程序
- python matplotlib使用ax绘图
- html.fromhtml 加载图片,TextView使用html.fromhtml加载html并显示图片
- 虚拟机装打印服务器,蜗牛矿渣装机教程 篇五:PVE虚拟机下OPENWRT如何安装USB打印机P1106...
- 【linux】什么是栈回溯
- C# 网上收集的一些所谓的开源项目
- 关于Python包导入报错的总结
- 2018招商银行春招笔试编程题第一题
- win7网络看不到win10计算机,网络共享中win7能找到win10,但win10找不到win7
- 神经网络程序设计课学习心得
- 游戏数据库版本更新神器Flyway
- SQL注入测试神器sqlmap
- 期货反手有几种做(期货里面什么叫反手)
热门文章
- 分享Silverlight/WPF/Windows Phone/HTML5一周学习导读(4月2日-4月8日)
- HDU-2688 Rotate
- 在ASP.NET中使用Global.asax文件
- 百度编辑器在编辑视频时src丢失的问题
- 严重: StandardServer.await: create[8005]:
- SQL Server 2005“备份集中的数据库备份与现有的数据库不同”解决方法此信息转载自BlueSky's Blog,www.heuupk.com,为尊重无价的知识请保留此版权信息。...
- C#的static,interface,virtual,abstract,override的区别用法
- MYSQL(04)-间隙锁详解
- promise使用promise进行封装http请求接口
- Linux的换网变化IP进行固定IP