【问题标题】:Problems adding native DLLS to Java runtime (JIntellitype)将本机 DLLS 添加到 Java 运行时的问题 (JIntellitype)
【发布时间】:2014-06-29 23:44:33
【问题描述】:

我正在尝试让 JIntellitype 与我的 java 应用程序一起运行,但我遇到了以下异常:

Exception in thread "AWT-EventQueue-0" com.melloware.jintellitype.JIntellitypeException: Could not load JIntellitype.dll from local file system or from inside JAR
    at com.melloware.jintellitype.JIntellitype.<init>(JIntellitype.java:114)
    at com.melloware.jintellitype.JIntellitype.getInstance(JIntellitype.java:177)
    at marketbot.SettingsWindow.<init>(SettingsWindow.java:27)
    at marketbot.MarketBot$2.run(MarketBot.java:129)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:733)
    at java.awt.EventQueue.access$200(EventQueue.java:103)
    at java.awt.EventQueue$3.run(EventQueue.java:694)
    at java.awt.EventQueue$3.run(EventQueue.java:692)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:703)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
Caused by: java.io.IOException: FromJarToFileSystem could not load DLL: com/melloware/jintellitype/JIntellitype.dll
    at com.melloware.jintellitype.JIntellitype.fromJarToFs(JIntellitype.java:150)
    at com.melloware.jintellitype.JIntellitype.<init>(JIntellitype.java:105)
    ... 17 more
Caused by: java.lang.NullPointerException
    at com.melloware.jintellitype.JIntellitype.fromJarToFs(JIntellitype.java:146)
    ... 18 more

我在任何地方都有 DLL(老实说,我已经把它们放在了我能想象到的所有地方),但我仍然无法让它工作。它今天早些时候工作,但在计算机重新启动后,我现在再次收到此错误。

我使用netbeans,所以我将JIntellitype JAR添加到项目库中,并且我在C:\ Windows \ System,主项目文件夹,src文件夹,dist文件夹,lib文件夹,java jdk jre bin文件夹中有DLLS(所有其他 dll 所在的位置),似乎没有什么可以让它工作。

有人有什么想法吗?

在我的谷歌任务中,我确实遇到了https://code.google.com/p/jintellitype/issues/detail?id=12&can=1&colspec=ID%20Type%20Status%20Priority%20Stars%20Owner%20Summary,但我根本无法帮助我。

【问题讨论】:

  • 您可能还需要提供尝试加载 DLL 的代码
  • 我只是在使用 JIntellitype 库......所以没有运行自定义代码,基本上只是示例代码:code.google.com/p/jintellitype

标签: java netbeans dll


【解决方案1】:

好吧,我不完全确定为什么,但我决定安装 Java x64,将我的环境切换到 64 位并使用 64 位 DLL,它现在可以完美运行。我猜~魔法~发生了:-/

【讨论】:

  • 发生的情况是,当您使用本机代码时,您的代码不像 java 那样跨平台兼容。所以你肯定一直在编译或使用 64 位 DLL,然后使用 32 位 java。
【解决方案2】:

我是作者。通常这意味着它找不到您的 DLL,但您是否尝试过让我们的示例应用程序正常工作?您可以在此处下载示例:

https://code.google.com/p/jintellitype/downloads/list

您还在使用 64 位 JVM 吗?如果是这样,您需要确保使用 64 位 Intellitype.DLL 并将其重命名为 JIntellitype.dll

【讨论】:

  • 感谢您的回复!不,该示例应用程序不起作用并且失败并出现相同的错误。如果我尝试手动加载 DLL(因为 JIntellitype.jar 没有通过其捕获显示实际的错误消息),我会收到一个初始化错误:“ System.load("C:\\Users\\Christopher\\Desktop\\ jintellitype-1.3.9-dist\\jintellitype-1.3.9\\JIntellitype.dll");"产生“动态链接库 (DLL) 初始化例程失败”,同时加载 64 位版本会产生:“无法在 IA 32 位平台上加载 AMD 64 位 .dll”。所以 dll 的初始化失败了
猜你喜欢
  • 2017-05-07
  • 2020-11-05
  • 1970-01-01
  • 1970-01-01
  • 2019-03-17
  • 1970-01-01
  • 1970-01-01
  • 2020-06-22
  • 1970-01-01
相关资源
最近更新 更多