NoClassDefFoundError: com/sun/jna/NativeLibraryJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 NoClassDefFoundError: com/sun/jna/NativeLibrary

Сообщение Anonymous »

Запуск примера файла Java в Eclipse в проекте Maven с использованием libsdl4j-2.28.4-1.6. Получение NoClassDefFoundError.
Вот стек ошибок:

Код: Выделить всё

Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/jna/NativeLibrary
at io.github.libsdl4j.jna.SdlNativeLibraryLoader.loadLibSDL2(SdlNativeLibraryLoader.java:33)
at io.github.libsdl4j.jna.SdlNativeLibraryLoader.registerNativeMethods(SdlNativeLibraryLoader.java:24)
at io.github.libsdl4j.api.Sdl$InternalNativeFunctions.(Sdl.java:56)
at io.github.libsdl4j.api.Sdl.SDL_Init(Sdl.java:30)
at Demo.main(Demo.java:23)
Caused by: java.lang.ClassNotFoundException: com.sun.jna.NativeLibrary
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)
Вот класс SdlNativeLibraryLoader:

Код: Выделить всё

package io.github.libsdl4j.jna;

import java.util.HashMap;
import java.util.Map;
import com.sun.jna.Library;
import com.sun.jna.Native;
import com.sun.jna.NativeLibrary;

import static com.sun.jna.Library.OPTION_CLASSLOADER;
import static com.sun.jna.Library.OPTION_STRING_ENCODING;

public final class SdlNativeLibraryLoader {

public static final String SDL_LIBRARY_NAME = "SDL2";

// This field keeps the reference to the loaded JNA library object to prevent it from being garbage collected.
private static NativeLibrary libSDL2;

private SdlNativeLibraryLoader() {
}

public static synchronized void registerNativeMethods(Class nativeClass) {
if (libSDL2 == null) {
libSDL2 = loadLibSDL2();
}
Native.register(nativeClass, libSDL2);
}

private static NativeLibrary loadLibSDL2() {
Map options = new HashMap();
options.put(OPTION_STRING_ENCODING, "UTF-8");
options.put(OPTION_CLASSLOADER, SdlNativeLibraryLoader.class.getClassLoader());
return NativeLibrary.getInstance(SDL_LIBRARY_NAME, options);
}

public static  T loadLibSDL2InterfaceInstance(Class libraryInterface) {
Map options = new HashMap();
options.put(OPTION_STRING_ENCODING, "UTF-8");
options.put(OPTION_CLASSLOADER, SdlNativeLibraryLoader.class.getClassLoader());
return Native.load(SDL_LIBRARY_NAME, libraryInterface, options);
}
}
Процесс завершился неудачей в методе «NativeLibrary.getInstance».
Поскольку это проект Maven, я предполагаю, что он использует инструмент Maven Project Builder. . Однако в свойствах активированы как Java Builder (Eclipse), так и Maven Project Builder. Я попробовал без Java Builder и получил ту же проблему. Вот POM.xml:

Код: Выделить всё

4.0.0
SDL4JDemo
JavaDemo
0.0.1-INSTALL{guice.disable.misplaced.annotation.check}
Demo

install


В целевой библиотеке проекта у меня также есть файл «libsdl4j-2.28.4-1.6.pom»:

Код: Выделить всё

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0

io.github.libsdl4j
libsdl4j
2.28.4-1.6
jar

LibSDL4J
LibSDL4J - Java language bindings for SDL2.
https://libsdl4j.github.io/

[*]

zlib License
https://opensource.org/licenses/Zlib





Kamil Ševeček
https://github.com/shinedeveloper
libsdl4j@outlook.com




scm:git:git://github.com/libsdl4j/libsdl4j.git
scm:git:ssh://github.com:libsdl4j/libsdl4j.git
https://github.com/libsdl4j/libsdl4j/tree/master




net.java.dev.jna
jna
5.15.0


org.jetbrains
annotations
23.0.0


org.slf4j
slf4j-api
1.7.36




Нашел аналогичную проблему в литературе:
  • удалили файлы "module-info.java"; не устранило проблему.
  • другие обнаруженные проблемы относятся к com.sun.java.Library, но не к NativeLibrary, или имеют другую среду.
Похоже на проблему со ссылкой на библиотеку, но я не могу найти, какая библиотека отсутствует и как ее добавить в зависимостях.

Подробнее здесь: https://stackoverflow.com/questions/792 ... ivelibrary
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • JNA получает com.sun.jna.platform.win32.COM.COMException: класс не зарегистрирован
    Anonymous » » в форуме JAVA
    0 Ответы
    32 Просмотры
    Последнее сообщение Anonymous
  • JNA получает com.sun.jna.platform.win32.COM.COMException: класс не зарегистрирован
    Anonymous » » в форуме C#
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous
  • Использование инструментов Google OR с ONOS – java.lang.NoClassDefFoundError: com/sun/jna/Platform
    Anonymous » » в форуме JAVA
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Или tools java.lang.noclassdeffounderror: com/sun/jna/platform
    Anonymous » » в форуме JAVA
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Причиной этого исключения было следующее: java.lang.NoClassDefFoundError: не удалось инициализировать класс sun.font.Sun
    Anonymous » » в форуме JAVA
    0 Ответы
    105 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»