Im Wesentlichen ist die Frage das. Ich habe ein Java-Programm, von dem ich eine JNI-Bibliothek laden. Kann diese JNI-Bibliothek mit der gemeinsamen Bibliothek libjvm.so
von HotSpot verbunden werden und dementsprechend Funktionen aufrufen, die nur für HotSpot - also außerhalb von jni.h
- gelten? Verknüpfen von JNI-Code mit der JVM
Wenn ich versuche, und tue so auf einfache Art und Weise, ist das Ergebnis das Programm abstürzt mit:
java: symbol lookup error: /path/to/libtest.so: undefined symbol: _ZNK7oopDesc5klassEv
Dies gibt das Aussehen der Fehler geladen werden, da es nicht den HotSpot-unique lösen oopDesc-Klasse. Irgendwelche Vorschläge, um eine Bibliothek zu erstellen, die so verlinkt werden kann?
Edit: auch libjava.so
Verknüpfung Versuchte zur Compile-Zeit ohne Erfolg.
Danke, ich habe das getestet, aber es war nicht das Problem. Tritt immer noch auf, selbst wenn Sie zu den genau gleichen Bibliotheken verbinden. – 0x277F
Dies könnte verwandt sein? https://bugs.openjdk.java.net/browse/JDK-8037962 – Wheezil