无法从本地文件系统或内部jar加载jintellitype.dll



我正在尝试使用jintellitype来收听全局热键

线程"主"中的例外 com.melloware.jintellitype.jintellitypeexception:无法加载 jintellitype.dll来自本地文件系统或从内部jar at com.melloware.jintellitype.jintellitype。(jintellitype.java:114) 在 com.melloware.jintellitype.jintellitype.getinstance(jintellitype.java:177) 在utils.hotkey。(hotkey.java:19) ui.main.catch_hotkeys(main.java:78)atu.main。(main.java:20) 在ui.main.main(main.java:15)中引起的:java.io.ioexception: FromjArtoFileSystem无法加载DLL: com/melloware/jintellitype/jintellitype.dll at com.melloware.jintellitype.jintellitype.fromjartofs(jintellitype.java:150) 在 com.melloware.jintellitype.jintellitype。(jintellitype.java:105) ... 5造成:java.lang.nullpointerexception at com.melloware.jintellitype.jintellitype.fromjartofs(jintellitype.java:146) ...更多

我已经加载了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");
         }
    }

}  

任何想法如何修复?

您的问题将由于该OS版本和JRE版本之间存在版本问题而出现。

您应该检查:

  1. 是否在OS系统文件夹中安装了适当的DLL文件。Jintellitype软件包有两个DLL文件,一个用于32位OSS,另一个用于64位OSS,它们的名称不同。

  2. 在项目属性中检查您的Java平台版本。如果有多种类型的JDK,则可以尝试更改Java平台。确保哪一个用于64位或32位版本。

祝你好运!

我建议您做类似的事情:

     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异常(图书馆抛出的唯一异常),并警告用户(通过对话框窗口)Hotkey未能注册。您应该让他们可以选择在没有它们的情况下继续进行,或重新启动计算机并重试。

相信我。...除非这是一个恒定的问题(这意味着您将其配置不正确),那是您最好的选择。这将不时随机发生。

最新更新