Моя первая программа, использующая внешнюю библиотеку, кликер, использующий JNativeHook / Kwhat's NativeKeyListeners для остановки цикла щелчка, имеет некоторые проблемы с запуском из JAR. В NetBeans все работает нормально, когда я нажимаю клавишу F6, все импортируемые классы обнаруживаются просто отлично, все функции работают правильно, ошибок и проблем с библиотеками нет. Проблема в том, что после сборки / очистки он возвращает один и тот же "Could not find or load main class cookieclicker.CookieClicker Caused by: java.lang.NoClassDefFoundError: org/jnativehook/keyboard/NativeKeyListener"
каждый раз. Как ни странно, NetBeans также не генерирует никаких папок dist/lib
или dist/native
, которые могут быть связаны.
Изменение порядка кода таким образом, что другие классы из org.jnativehook
импортируются первыми, возвращает то же самоеошибка, изменение строки на org.jnativhook.keyboard.*
не помогло, создание файла dist / lib вручную с JAR JNativeHook в нем не принесло плодов. Я пытался найти разные руководства NetBeans, но ни одна из них, похоже, ничего не изменила. Я еще не пробовал устанавливать внешние программы, о чем говорят некоторые статьи или посты, которые я прочитал. Если это действительно то, что нужно, я не боюсь, но я бы предпочел этого избежать. Установка новейшей версии JNativeHook также не сработала.
package cookieclicker;
import java.awt.*;
import java.awt.event.*;
import org.jnativehook.*;
import org.jnativehook.keyboard.*;
import org.jnativehook.mouse.*;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.*;
import static org.jnativehook.GlobalScreen.addNativeKeyListener;
import static org.jnativehook.GlobalScreen.addNativeMouseListener;
import static org.jnativehook.GlobalScreen.removeNativeMouseListener;
Я ожидаю, что она импортирует все то, о чем я ее прошу, но независимо от того, как я изменяю вещи, всегда обнаруживается ошибка при поискеorg.jnativehook.keyboard.NativeKeyListener
. Ни больше, ни меньше.