找不到JNativeHook类

问题描述

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

错误:无法找到或加载主类密钥。GlobalKeyListenerExample 造成原因: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

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...