You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mac OS X下使用JPype启动JVM提示文件不存在但实际存在的问题求助

问题:Mac下JPype1启动JVM提示指定文件找不到

问题场景

在Mac OS X 13.2.1系统下,使用Python 3.10.4及JPype1 1.4.1尝试启动JVM,手动指定JVM路径为/Library/Java/JavaVirtualMachines/microsoft-11.jdk/Contents/Home/lib/jli/libjli.dylib,运行代码时提示该文件不存在。

代码片段

import jpype

jvm_path = "/Library/Java/JavaVirtualMachines/microsoft-11.jdk/Contents/Home/lib/jli/libjli.dylib"

jpype.startJVM(
    jvm_path,
    classpath=['~/org.alloytools.alloy.dist.jar'],
)

错误信息

Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "/Users/<username>/research-llm/alloy-bridge/src/__main__.py", line 5, in <module>
    jpype.startJVM(
  File "/Users/<username>/research-llm/alloy-bridge/.env/lib/python3.10/site-packages/jpype/_core.py", line 224, in startJVM
    _jpype.startup(jvmpath, tuple(args),
FileNotFoundError: [Errno 2] JVM DLL not found: /Library/Java/JavaVirtualMachines/microsoft-11.jdk/Contents/Home/lib/jli/libjli.dylib

环境诊断信息

java -version
openjdk version "11.0.12" 2021-07-20
OpenJDK Runtime Environment Microsoft-25199 (build 11.0.12+7)
OpenJDK 64-Bit Server VM Microsoft-25199 (build 11.0.12+7, mixed mode)

javac -version
javac 11.0.12

python --version
Python 3.10.4

pip show jpype1
Name: JPype1 Version: 1.4.1 Summary: A Python to Java bridge. Home-page: https://github.com/jpype-project/jpype Author: Steve Menard Author-email: devilwolf@users.sourceforge.net License: License :: OSI Approved :: Apache Software License Location: /Users/username/projects/alloy-bridge/.env/lib/python3.10/site-packages Requires: packaging Required-by:

sw_vers
ProductName: macOS ProductVersion: 13.2.1 BuildVersion: 22D68

解决方向

  • 验证指定路径的文件是否存在:在终端执行ls /Library/Java/JavaVirtualMachines/microsoft-11.jdk/Contents/Home/lib/jli/libjli.dylib,若返回文件不存在,说明路径错误。
  • 替换为正确的JVM动态库路径:Mac上OpenJDK 11的标准JVM库路径为/Library/Java/JavaVirtualMachines/microsoft-11.jdk/Contents/Home/lib/server/libjvm.dylib,将代码中的jvm_path替换为此路径重试。
  • 让JPype自动探测JVM路径:删除手动指定的jvm_path参数,直接调用jpype.startJVM(classpath=['/Users/<username>/org.alloytools.alloy.dist.jar']),JPype会自动查找系统默认JDK。
  • 修正classpath路径:代码中~/org.alloytools.alloy.dist.jar的波浪号不会被JPype解析,替换为绝对路径(如/Users/<username>/org.alloytools.alloy.dist.jar)。
  • 确认架构一致性:确保Python和JDK都是64位(当前环境已满足,可快速排除此问题)。

内容的提问来源于stack exchange,提问作者Rodrigo Stv

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 03:43:20