Python调用jar包

本文涉及的产品
实时数仓Hologres,5000CU*H 100GB 3个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
实时计算 Flink 版,5000CU*H 3个月
简介: jpype 调用 jar 包环境:python 3.6.8 + jpype1 0.6.3 + jdk 1.8“”"基本的开发流程如下:①、使用jpype开启jvm②、加载java类③、调用java方法④、关闭jvm(不是真正意义上的关闭,卸载之前加载的类)“”" ①、使用jpype开启虚拟机(在开启jvm之前要加载类路径) 加载刚才打包的jar文件path = r"C:\Users\Admi...

jpype 调用 jar 包
环境:python 3.6.8 + jpype1 0.6.3 + jdk 1.8
"""
基本的开发流程如下:
①、使用jpype开启jvm
②、加载java类
③、调用java方法
④、关闭jvm(不是真正意义上的关闭,卸载之前加载的类)

"""

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

加载刚才打包的jar文件

path = r"C:\Users\Administrator\Desktop\xxx.jar"
jarpath = os.path.join(os.path.abspath('views'), path)

获取jvm.dll 的文件路径

jvmPath = jpype.getDefaultJVMPath()

jvmPath = 'C:/Program Files/Java/jdk1.8.0_291/jre/bin/server/jvm.dll'

开启jvm

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

②、加载java类(参数是java的长类名)

javaClass = jpype.JClass("com.it.zty.JwtUtils")

实例化java对象

javaInstance = javaClass()

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

user_id = javaClass.getUserId(token)

④、关闭jvm

jpype.shutdownJVM()
注意的是:python 的位数 和 jdk 的位数一定要保持相同,否则会抛出
Process finished with exit code -1073741819 (0xC0000005)
的错误。

目录
相关文章
WK
|
18天前
|
Python
如何在Python中导入包
在 Python 中,包是一种组织代码的方式,通过包含 `__init__.py` 文件(在 Python 3.3 及以上版本可选)的目录实现。包内可以包含多个模块(`.py` 文件)和其他子包。导入包有多种方式:整体导入包、导入特定模块、导入特定函数或类、导入子包等。推荐的做法是明确指定导入内容以提高代码的可读性和可维护性。此外,确保包目录结构正确,并将其添加到 Python 的搜索路径中。对于分发包,使用 setuptools 和 pip 等工具更为便捷。
WK
112 66
WK
|
18天前
|
Python
如何在Python中创建包
在Python中创建包十分简便,主要涉及目录结构的设置及`__init__.py`文件的配置。虽然Python 3.3后空`__init__.py`文件不再强制要求,但在特定场景下保留它有助于保持兼容性或执行包初始化代码。创建包的具体步骤包括:构建目录结构、编写模块代码、(可选)编写初始化代码等。例如,可以创建一个名为`mypackage`的目录,其中包含`__init__.py`及多个模块文件如
WK
107 62
WK
|
19天前
|
开发者 Python
Python中的包是什么?
在Python中,包是一种组织模块的方式,用于实现代码重用和模块化。通过包含`__init__.py`文件的目录定义包,形成树状结构,便于管理大型项目。包提高了代码的可读性和可维护性,允许重用现有代码,并避免模块名冲突。使用点操作符导入包中的模块,`__init__.py`可在包导入时执行初始化代码。从Python 3.3起,还可使用命名空间包来组织模块。掌握包的使用对大型Python项目开发至关重要。
WK
16 5
WK
|
19天前
|
开发工具 git Python
如何在Python中创建包?
在Python中创建包十分简便,主要步骤包括:创建目录(如 `mypackage`),并根据需求添加空的或含初始化代码的 `__init__.py` 文件;接着在该目录下添加 `.py` 文件作为模块;如有需要,可以进一步创建子包以形成层次结构。创建完成后,即可在其他脚本中导入并使用这些包。为避免名称冲突,请选择独特的包名,并考虑使用版本控制系统(如Git)管理代码变更。对于需分发的包,还应准备 `setup.py` 文件以方便构建与发布。
WK
16 3
|
22天前
|
项目管理 数据安全/隐私保护 Python
使用poetry来更优雅的管理 python 包
Poetry 的优势在于它提供了一个统一的工具来处理 Python 项目的整个生命周期,从依赖管理到打包和发布。它的依赖解析器非常强大,能够有效地处理复杂的依赖关系。此外,Poetry 还提供了一个直观的命令行界面,使得项目管理变得更加简单。 对于团队协作和项目部署来说,Poetry 的依赖锁定功能(通过 poetry.lock 文件)特别有用,因为它确保了所有环境中使用相同版本的依赖。
|
23天前
|
Python
【Azure 应用服务】如何为Web Jobs 安装Python包呢?
【Azure 应用服务】如何为Web Jobs 安装Python包呢?
【Azure 应用服务】如何为Web Jobs 安装Python包呢?
|
1月前
|
调度 数据库 UED
Python使用asyncio包实现异步编程方式
异步编程是一种编程范式,用于处理程序中需要等待异步操作完成后才能继续执行的情况。 异步编程允许程序在执行耗时的操作时不被阻塞,而是在等待操作完成时继续执行其他任务。 这对于处理诸如文件 I/O、网络请求、定时器等需要等待的操作非常有用。
|
1月前
|
Python
手撕Python!模块、包、库,傻傻分不清?一分钟带你弄明白!
手撕Python!模块、包、库,傻傻分不清?一分钟带你弄明白!
41 1
|
1月前
|
PyTorch TensorFlow 算法框架/工具
手撕Python! 模块、包和库一分钟搞定!
手撕Python! 模块、包和库一分钟搞定!
21 1