python通过jpype调用jvm报错[WinError 126] JVM DLL not found 最后更新时间:2024年12月27日 #### 问题描述 项目里使用了jpype来调用java做一些操作。切换系统后发现怎么都调用不起来。 ```shell Traceback (most recent call last): File "E:\programme\javascript\kettle-manager\kettle-server\app.py", line 4, in run() File "E:\programme\javascript\kettle-manager\kettle-server\core.py", line 12, in run PDI().initEx("AwPan","AwKitchen") File "E:\programme\javascript\kettle-manager\kettle-server\module\PDI\PDI.py", line 13, in __init__ jpype.startJVM(jvm_config["JVM_path"],jvm_config["encoding"],"-ea",Djava) File "E:\programme\javascript\kettle-manager\kettle-server\venv\lib\site-packages\jpype\_core.py", line 298, in startJVM _jpype.startup(jvmpath, jvmargs + tuple(extra_jvm_args), OSError: [WinError 126] JVM DLL not found: D:/software/java/jdk8/jdk180_431/jre/bin/server/jvm.dll ``` #### 原因 检查和查阅一些资料后发现,jvm的版本架构(如arm,x86,32bit,64bit)如果与python的架构不同,也会导致无法调用。 而切换后的设备python为64bit,java为32bit。 #### 解决办法 重装java或python对齐架构。或者另外下载jvm的文件。jpype重新指向调用的jvm.dll即可。
Comments | NOTHING