代码:为什么我得到这些错误?
package keylogger;
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.VK_ESCAPE) {
try {
GlobalScreen.unregisterNativeHook(); // LINE 18
}
catch (NativeHookException ex) {
System.err.println("You cannot call unregisterNativeHook() from the native dispatch thread.");
}
}
}
public void nativeKeyReleased(NativeKeyEvent e) {
System.out.println("Key Released: " + NativeKeyEvent.getKeyText(e.getKeyCode()));
}
public void nativeKeyTyped(NativeKeyEvent e) {
System.out.println("Key Typed: " + NativeKeyEvent.getKeyText(e.getKeyCode()));
}
public static void main(String[] args) {
try {
GlobalScreen.registerNativeHook(); // LINE 38
}
catch (NativeHookException ex) {
System.err.println("There was a problem registering the native hook.");
System.err.println(ex.getMessage());
ex.printStackTrace();
}
//Construct the example object and initialze native hook.
GlobalScreen.getInstance().addNativeKeyListener(new GlobalKeyListenerExample());
}
}
这是相同的代码给出here on google code。我下载并在我的项目中使用了JNativeHost library。但我得到以下错误:
Cannot find unregisterNativeHook,registerNativeHook. //(line 18,38)
The IDE also says GlobalKeyListenerExample is not abstract and doesn't override abstract method keyReleased.
第一个错误the methods are defined here and they are native methods我也有进口的GlobalScreen类。
为什么我得到第二个错误时,我已经覆盖了那个? 但是,当我在该方法之前添加一个@Override
注释时,IDE会提供一个错误,表明该方法不会覆盖或从超类型实现。
这是你收到的编译错误吗?你有没有将jar添加到你的类路径中? – jogabonito
@jogabonito [是的,我已经保存在我的项目库中的jar文件](http://i46.tinypic.com/eugfog.jpg) –
我不能看到你发布的链接(它阻止我在哪里)。我复制了你的代码并链接了这个库,它适用于我。不是一个非常有用的答案,我知道:-) – jogabonito