Как устранить ошибку «java.lang.UnsatisfiedLinkError: нет *.dll в java.library.path» в Java
Для загрузки пользовательского файла DLL в веб-приложение вы можете выбрать различные подходы. Однако для успешной загрузки важно убедиться, что DLL соответствует определенным требованиям. Во-первых, DLL должна находиться в каталоге, включенном в ваш PATH, или по пути, указанному в системном свойстве java.library.path. Кроме того, при использовании System.loadLibrary() требуется только базовое имя библиотеки; расширение .dll следует опустить. Например, для /path/to/something.dll используйте System.loadLibrary("something").
При обнаружении ошибки "java.lang.UnsatisfiedLinkError: no *.dll в java.library.path», важно изучить конкретное сообщение об ошибке. Если это указывает на то, что библиотека foo (foo.dll) не может быть найдена в вашем PATH или java.library.path, вам необходимо убедиться, что DLL присутствует в указанном каталоге. С другой стороны, сообщение об ошибке типа «java.lang.UnsatisfiedLinkError: com.example.program.ClassName.foo()V» предполагает несоответствие между собственной функцией Java в вашем приложении и ее соответствующим собственным аналогом в библиотеке.
Чтобы устранить проблему, рассмотрите возможность ведения журнала вокруг вашего вызова System.loadLibrary(), чтобы проверить статус его выполнения. Если выдается исключение или путь кода не выполняется, это может привести к последнему типу UnsatisfiedLinkError.
Чтобы упростить процесс, большинство программистов предпочитают размещать вызовы loadLibrary() в статическом блоке инициализатора внутри класс, содержащий собственные методы. Такой подход гарантирует инициализацию и выполнение метода loadLibrary() ровно один раз:
class Foo { static { System.loadLibrary('foo'); } public Foo() { } }
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3