java - dyld: Symbol not found: _JVM_CopySwapMemory
问题描述
I was setting up my development environment for a java application using java 8u202, HotSwapAgent 1.3.0, DCEVM 8u181 and IntelliJ on a MacOS machine. Everything worked fine for a few days when suddenly this error appeared:
dyld: lazy symbol binding failed: Symbol not found: _JVM_CopySwapMemory Referenced from: /Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home/jre/lib/libjava.dylib Expected in: /Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home/jre/lib/dcevm/libjvm.dylib
dyld: Symbol not found: _JVM_CopySwapMemory Referenced from: /Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home/jre/lib/libjava.dylib Expected in: /Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home/jre/lib/dcevm/libjvm.dylib
I've tried reinstalling JDK, replace JVM by DCEVM not just install DCEVM as an alternative JVV but none of these solutions worked.
Does anyone knows what could cause this or how to solve it?
解决方案
这JVM_CopySwapMemory
是 OpenJDK JVM 从 2019 年 1 月更新开始公开的一种新方法。
JVM_CopySwapMemory(JNIEnv *env,
jobject srcObj,
jlong srcOffset,
jobject dstObj,
jlong dstOffset,
jlong size,
jlong elemSize)
这意味着您需要一个特定的补丁文件来自己编译 DCEVM 项目,如果确实有补丁可用的话。
不幸的是,最新的二进制版本仅与 兼容8u181
,而不与8u202
.
推荐阅读
- python - Python 处理用户输入的动态量
- autodesk-forge - 缩放场景 Autodesk Forge
- reactjs - React native - 如何导航推送通知点击?
- c# - 如何使用正则表达式从引号中获取字符串
- google-ads-api - 是否可以在不使用他们提供的客户端库的情况下使用像邮递员这样的客户端来访问 Google Ads/Adwords API?
- angular - 路由器链接一直被调用
- html - 鼠标悬停和键盘焦点的CSS“工具提示”
- python - 使用 python 图像处理识别材料上的 ID
- c - vscode+mingw 有趣的调试情况
- node.js - 键入脚本路径不起作用。即使在 tsconfig.json 中设置了“baseUrl”属性