dyld:找不到符号:_JVM_CopySwapMemory

时间:2019-03-27 16:51:58

标签: java macos intellij-idea hotswap

我正在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,而且这些解决方案均无效。

有人知道这可能导致什么或如何解决吗?

1 个答案:

答案 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兼容。