Я работаю над записывающим устройством с использованием java, где (используя JNI) я должен загрузить некоторые собственные библиотеки (DLL). Ну, я знаю, что для загрузки собственной библиотеки с использованием «System.loadLibrary (libName)», библиотека должна быть установлена на один из путей «java.library.path», однако, если вы используете «System.load (libPath)» там в этом нет необходимости.JVM падает при загрузке собственной библиотеки
Таким образом, я использовал, чтобы загрузить все мои родные библиотеки с помощью «System.load (libPath
)» и это работало на всех из них, за исключением одного одного "BurnerCaller.dll"
, что вызывает JVM
сбой с сообщением об ошибке ниже.
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (0xe0434352), pid=2280, tid=0x00000000000013a8
#
# JRE version: Java(TM) SE Runtime Environment (8.0_92-b14) (build 1.8.0_92-b14)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.92-b14 mixed mode windows-amd64 compressed oops)
# Problematic frame:
# C [KERNELBASE.dll+0xaa7d]
#
# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
#
# An error report file with more information is saved as:
# C:\Program Files\Java\MainWorkspace\NewAman\hs_err_pid2280.log
#
# If you would like to submit a bug report, please visit:
# http://bugreport.java.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
Here - подробная информация об ошибке.
Странная вещь, что тогда и только тогда, когда я поставил эту библиотеку в каталог «бин» в настоящее время работает JRE
или JDK
(что мое приложение использует для запуска) он работает как шарм.
Любая помощь будет оценена, спасибо заранее.
У вас действительно есть несколько родных библиотек *, содержащих код JNI *? Обычно у вас будет только один, и у него будут ссылки DLL на любой другой родной материал, который он использовал. – EJP
нет единственной уникальной библиотеки, которая содержит _JNI Code_ – MDev
Так что это единственная библиотека, которую вам нужно загрузить. – EJP