簡體   English   中英

無法從本地文件系統或JAR內部加載JIntellitype.dll

[英]Could not load JIntellitype.dll from local file system or from inside JAR

我正在嘗試使用JIntellitype來偵聽全局熱鍵,但出現此錯誤:

線程“主”中的com.melloware.jintellitype.JIntellitypeException異常:無法從本地文件系統或com.melloware.jintellitype.JIntellitype。(JIntellitype.java:114)的com.melloware.jintellitype的JAR內部加載JIntellitype.dll。 ui上utils.HotKey的.JIntellitype.getInstance(JIntellitype.java:177)。ui上的.HIntelliKey。(HotKey.java:19).ui上的Main.Catch_Hotkeys(Main.java:78).ui上的Main。(Main.java:20) .Main.main(Main.java:15)由以下原因引起:java.io.IOException:FromJarToFileSystem無法加載DLL:com.melloware.jintellitype.JIntellitype.fromJarToFs(JIntellitype.java:上的com / melloware / jintellitype / JIntellitype.dll: 150)com.melloware.jintellitype.JIntellitype。(JIntellitype.java:105)... 5個其他原因:com.melloware.jintellitype.JIntellitype.fromJarToFs(JIntellitype.java:146)的java.lang.NullPointerException .. 。6更多

我已經加載了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位操作系統,另一個用於64位操作系統,它們具有不同的名稱。

  2. 在項目的屬性中檢查您的Java Platform版本。 如果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異常(庫拋出的唯一異常),並(通過對話框窗口)警告用戶熱鍵注冊失敗。 您應該給他們選擇繼續使用它們的選項,或者重新引導計算機並重試。

相信我...。除非這是一個持續存在的問題(這意味着您配置不正確),否則它是您的最佳選擇。 這將不時隨機發生。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM