未找到 JNativeHook Class

JNativeHook Class not found

我需要一个 KeyListener,它也可以在专注的 GUI 组件之外工作,所以在进行研究之后,我遇到了 JNativeHook 库。但是一旦我下载了 ZIB 文件(来自 here)并将 jnativehook-2.1.0.jar 添加到我的 Eclipse 项目中(属性 -> Java 构建路径 -> 库 -> 添加外部 Jar)在 运行 测试程序时出现错误消息。

Error: Could not find or load main class key.GlobalKeyListenerExample Caused by: java.lang.NoClassDefFoundError: org/jnativehook/keyboard/NativeKeyListener

这是我第一次使用外部Jar,所以我想问问我是否做错了什么,或者我需要做些什么来解决这个问题。

我的程序:

package key;

import org.jnativehook.GlobalScreen;
import org.jnativehook.NativeHookException;
import org.jnativehook.keyboard.NativeKeyEvent;
import org.jnativehook.keyboard.NativeKeyListener;

public class GlobalKeyListenerExample implements NativeKeyListener {
    public void nativeKeyPressed(NativeKeyEvent e) {
        System.out.println("Key Pressed: " + NativeKeyEvent.getKeyText(e.getKeyCode()));

        if (e.getKeyCode() == NativeKeyEvent.VC_ESCAPE) {
            try {
                GlobalScreen.unregisterNativeHook();
            } catch (NativeHookException e1) {
                
                e1.printStackTrace();
            }
        }
    }

    public void nativeKeyReleased(NativeKeyEvent e) {
        System.out.println("Key Released: " + NativeKeyEvent.getKeyText(e.getKeyCode()));
    }

    public void nativeKeyTyped(NativeKeyEvent e) {
        System.out.println("Key Typed: " + e.getKeyText(e.getKeyCode()));
    }

    public static void main(String[] args) {
        try {
            GlobalScreen.registerNativeHook();
        }
        catch (NativeHookException ex) {
            System.err.println("There was a problem registering the native hook.");
            System.err.println(ex.getMessage());

            System.exit(1);
        }

        GlobalScreen.addNativeKeyListener(new GlobalKeyListenerExample());
    }
}

我遇到过同样的问题。

我的解决方案是将 JNativeHook.jar 放在 classpath 中,而不是 modulepath