我正在MacOS机器上使用Java 8u202,HotSwapAgent 1.3.0,DCEVM 8u181和IntelliJ为Java应用程序设置开发环境。几天后一切正常,突然出现此错误:
dyld:懒惰的符号绑定失败:找不到符号:_JVM_CopySwapMemory 引用自:/Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home/jre/lib/libjava.dylib 预期位于:/Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home/jre/lib/dcevm/libjvm.dylib
dyld:找不到符号:_JVM_CopySwapMemory 引用自:/Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home/jre/lib/libjava.dylib 预期位于:/Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home/jre/lib/dcevm/libjvm.dylib
我尝试重新安装JDK,用DCEVM替换JVM,不仅安装DCEVM作为替代JVV,而且这些解决方案均无效。
有人知道这可能导致什么或如何解决吗?
答案 0 :(得分:0)
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
兼容。