我试图使用JIntellitype来侦听全局热键,但我得到了以下错误:
线程"main“com.melloware.jintellitype.JIntellitypeException:中的异常不能从本地文件系统加载JIntellitype.dll,也不能从com.melloware.jintellitype.JIntellitype.getInstance(JIntellitype.java:177) at utils.HotKey的com.melloware.jintellitype.JIntellitype.(JIntellitype.java:114)从JAR内部加载JIntellitype.dll(HotKey.java:19)在ui.Main(ui.Main)的ui.Main.Catch_Hotkeys(Main.java:78) (Main.java:20)。(Main.java:15)由: java.io.IOException: FromJarToFileSystem无法加载DLL: com/melloware/jintellitype/JIntellitype.dll at com.melloware.jintellitype.JIntellitype.(JIntellitype.java:105) .
我已经加载了jar文件,我还通过引用库指向dll所在的文件夹。
下面是我试图运行的代码:
import com.melloware.jintellitype.HotkeyListener;
import com.melloware.jintellitype.IntellitypeListener;
import com.melloware.jintellitype.JIntellitype;
public class HotKey extends Thread implements HotkeyListener, IntellitypeListener {
private final int CTRL_C_SHIFT = 10;
public HotKey()
{
JIntellitype.getInstance().unregisterHotKey(CTRL_C_SHIFT);
JIntellitype.getInstance().registerHotKey(CTRL_C_SHIFT, JIntellitype.MOD_CONTROL + (int)'C', JIntellitype.MOD_SHIFT);
if (!JIntellitype.isJIntellitypeSupported())
{
System.exit(1);
}
}
@Override
public void onIntellitype(int arg0)
{
}
@Override
public void onHotKey(int key)
{
if (key == CTRL_C_SHIFT)
{
System.out.println("smg");
}
}
} 知道怎么解决这个问题吗?
发布于 2017-04-04 01:31:39
您的问题会因为操作系统版本和JRE版本之间的版本问题而发生。
你应该检查一下:
祝你好运!
发布于 2017-04-21 15:25:50
我建议你这样做:
try
{
JIntellitype.getInstance().unregisterHotKey(CTRL_C_SHIFT);
MyHotKeyListener hotKeyListener = new MyHotKeyListener();
hotKeyListener.addObserver(new MyEventListener());
JIntellitype.getInstance().addHotKeyListener(hotKeyListener);
JIntellitype.getInstance().registerHotKey(CTRL_C_SHIFT, JIntellitype.MOD_CONTROL + (int)'C', JIntellitype.MOD_SHIFT);
}
catch (JIntellitypeException je)
{
logger.warn("JIntellitype initialization failed.");
// DO WHATEVER (NOTIFY USERS?)
}我可以指出其他线程,包括这个库的创建者自己否认库存在问题的线程。但是,像我这样的许多用户有时会遇到这样的问题,其中JIntellitype无法初始化,唯一的解决方案就是重新启动计算机。因此,您应该捕获JIntellitype异常(库引发的唯一异常),并警告用户(通过对话框窗口)热键未能注册。您应该让他们选择继续不使用它们,或者重新启动计算机然后再试一次。
相信我..。除非这是一个经常出现的问题(这意味着您配置的不正确),否则它是您最好的选择。这种情况会时不时地发生。
https://stackoverflow.com/questions/42297594
复制相似问题