dyld: символ не найден: _JVM_CopySwapMemory - PullRequest
0 голосов
/ 27 марта 2019

Я настраивал свою среду разработки для java-приложения, используя java 8u202, HotSwapAgent 1.3.0, DCEVM 8u181 и IntelliJ на компьютере MacOS.Все работало нормально в течение нескольких дней, когда внезапно появилась эта ошибка:

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/jConjk0.8.0/jre/lib/dcevm/libjvm.dylib

Я пытался переустановить JDK, заменить JVM на DCEVM, а не просто установить DCEVM в качестве альтернативной JVV, но ни одно из этих решений не сработало.

Кто-нибудьзнает, что могло вызвать это или как решить это?

1 Ответ

0 голосов
/ 27 марта 2019

JVM_CopySwapMemory - это новый метод, предоставляемый JVM OpenJDK из обновления от января 2019 года.

JVM_CopySwapMemory(JNIEnv *env, 
                   jobject srcObj, 
                   jlong srcOffset,
                   jobject dstObj,
                   jlong dstOffset, 
                   jlong size,
                   jlong elemSize)

Это означает, что для компиляции проекта DCEVM вам нужен специальный файл исправления самостоятельно, если действительно имеется исправление.

К сожалению, последний бинарный выпуск совместим только с 8u181, но не с 8u202.

...