当前位置: 首页 > 面试题库 >

Java问题“ UnsatisfiedLinkError”

游勇军
2023-03-14
问题内容

我编写了一个简单的Java程序,该程序将字节发送到并行端口,该程序使用.dll以及其他两个类(pPort.java和ioPort.java)来完成此操作,并且运行良好。

但是,我开始在NetBeans IDE上制作另一个具有类似功能的程序。它可以完美地html" target="_blank">编译,但是当我运行它时,我得到:

Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: parallelporttimer.ioPort.Out32(SS)V

据我了解,它无法调用我放在System32上的.dll文件。但是我不明白为什么,因为另一个基本相同但在没有任何IDE的情况下手动制作的程序运行正常。我是否必须在NetBeans中指定某些内容才能正常工作?任何帮助,将不胜感激。


问题答案:

一条UnsatisfiedLinkError消息通常表明已设置库路径,但不包括您尝试加载的库。在Windows平台上,您应该扩展PATH使用

PATH = %PATH%;C:\path_to_dll_file

在UNIX平台上,应使用以下命令扩展库路径

setenv LD_LIBRARY_PATH mylibrarypath

但是,据我所记得(我不在Windows下),System32它位于PATHNetBeans
中,因此我怀疑NetBeans通过设置其自己的PATH来覆盖它。

要在NetBeans上解决此问题,您可能需要检查http://wiki.netbeans.org/DevFaqNativeLibraries,这是NetBeans梦之队成员Wade
Chandler的消息中提到的;-)

PS:您也可以使用java.library.pathsystem属性,但是请记住,此system属性仅用于解析要在代码中加载的直接本机库。其他依赖库的加载留给第一个库。您加载的JNI库将依赖于OS依赖的方式来解析其引用(IMO也适用于FAQ的解决方案,因此我仍然不是100%相信它是一个好的解决方案)。



 类似资料:
  • 问题内容: 我应该输入一个字符串,并更换所有and,to,you,和for与子和4。 输入字符串时,仅and在打印时输出。 输出:and and 似乎在第一个空格后切断了返回的字符串 我不知道发生了什么,为什么不按预期工作。我究竟做错了什么? 问题答案: 这是我简化您的代码并获得正确结果的方式:

  • 我试图创建一个聊天客户端,我从javaSpace返回一条消息,然后设置newMessage=true;因此,客户端可以看到需要读取的新消息。 那么对于客户来说, 此时将始终返回\u messager。messageRead是真的,尽管我刚刚把它设置得太假了。如果我取消注释//系统。出来println(温度);由于某种原因,布尔值将被更新,它也将等于它的含义。 我以前从未遇到过这个错误,对我来说非常

  • 我是Java新手,尝试使用SWT和JFace创建GUI项目。我想尝试创建首选项页面,所以我在谷歌上搜索了一些现成的代码。我正在试着从这里买一个。我创建了这个类(使用正确的名称),并将所需的JAR放入插件依赖项中。(使用Eclipse氧气) 组织。日食swt\U 3.106.1 因此,在运行此操作时,我遇到了一个错误,即: '线程“main”java中出现异常。lang.NoClassDefFoun

  • 问题内容: 如标题所述,我在java和mysql之间有问题 mysql数据库,表和列是utf8_unicode_ci。我有一个应用程序,它从xml中获取一些输入,然后编写查询… 此方法返回包含一个或多个SQL插入查询的String数组。然后 和和特殊字符都存储为? 因此特殊字符无法正确存储: 存储为 存储为 有什么建议吗? 谢谢 问题答案: 解决了,我忘了在初始化Connection时添加编码:

  • 问题内容: 谁能解释一下为什么这段代码中会出现死锁。 问题答案: 这可能是如何执行的。 输入,由于关键字已锁定Alphonse 输入,加斯顿现已锁定 无法通过第一个方法调用执行,因为加斯顿(鲍尔)被锁定。等待锁被释放。 由于alphonse(上弦器)已锁定,因此无法从第二个方法调用执行。等待锁被释放。 两个线程都互相等待释放锁。

  • 问题内容: 我在Windows上使用tomcat 6。这是我正在测试的代码。 我添加了所有库。运行文件时,出现以下错误- 我想念什么? 问题答案: 只需将其添加到您的命令行中: -Dphp.java.bridge.php_exec = / usr / bin / php 问题解决了!