首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法从本地文件系统或JAR内部加载JIntellitype.dll

无法从本地文件系统或JAR内部加载JIntellitype.dll
EN

Stack Overflow用户
提问于 2017-02-17 12:07:43
回答 2查看 1.9K关注 0票数 0

我试图使用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所在的文件夹。

下面是我试图运行的代码:

代码语言:javascript
复制
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");
         }
    }


}  

知道怎么解决这个问题吗?

EN

回答 2

Stack Overflow用户

发布于 2017-04-04 01:31:39

您的问题会因为操作系统版本和JRE版本之间的版本问题而发生。

你应该检查一下:

  1. 是否在OS系统文件夹中安装了适当的dll文件。JIntellitype包有两个dll文件,一个用于32位OSs,另一个用于64位OSs,它们有不同的名称。
  2. 检查项目属性中的Java平台版本。如果有多种类型的JDK,您可以尝试更改Java平台。确保哪一个是64位版本还是32位版本。

祝你好运!

票数 0
EN

Stack Overflow用户

发布于 2017-04-21 15:25:50

我建议你这样做:

代码语言:javascript
复制
     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异常(库引发的唯一异常),并警告用户(通过对话框窗口)热键未能注册。您应该让他们选择继续不使用它们,或者重新启动计算机然后再试一次。

相信我..。除非这是一个经常出现的问题(这意味着您配置的不正确),否则它是您最好的选择。这种情况会时不时地发生。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42297594

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档