Java 从控制台运行是正常的,从Eclipse错误
我快被日食弄疯了。我正在编写使用外部jar的简单测试类。它使用本机library.dll 当我从Eclipse运行时,命令Run。 这里是我的堆栈跟踪:Java 从控制台运行是正常的,从Eclipse错误,java,eclipse,Java,Eclipse,我快被日食弄疯了。我正在编写使用外部jar的简单测试类。它使用本机library.dll 当我从Eclipse运行时,命令Run。 这里是我的堆栈跟踪: Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\Program Files\YAZ\bin\yaz4j.dll: The specified procedure could not be found at java.lang.ClassLoader$Native
Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\Program Files\YAZ\bin\yaz4j.dll: The specified procedure could not be found
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary1(ClassLoader.java:1939)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1864)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1854)
at java.lang.Runtime.loadLibrary0(Runtime.java:845)
at java.lang.System.loadLibrary(System.java:1084)
at org.yaz4j.Connection.<clinit>(Connection.java:56)
at ru.Test.testConnection(Test.java:20)
at ru.Test.main(Test.java:15)
一切都很完美!
这是相同的代码它如何在控制台中工作而在Eclipse中不工作?
下面是我如何在Eclipse中将这个引用的jar插件到我的项目中:
当本机方法无法链接时,您会收到可怕的消息。我可以想出几个可能传达这一信息的根本原因:
几天来,我一直在努力解决同一个问题,现在我试图在我的项目中使用YAZ工具包。问题是本机库可以正确地加载到各种测试计算机上,但不能加载到我的个人电脑上 简而言之:问题的原因是JVM加载了不正确的libxml2.dll和libxslt.dll依赖库 当我从IDE启动JVM时,它开始在以下位置查找本机库:
重新编译yaz4.dll以使其指向重命名的libxml2.dll和libxslt.dll可能是一个潜在的解决方案。我也遇到了同样的问题,您需要JDK而不是JRE构建路径库漂亮的手工圆圈!!!检查运行配置?运行配置中应该包含什么?我在run config中写过这样的内容:-Djava.library.path=“C:\Program Files\YAZ\bin”没有帮助…我也遇到了这个问题,你能找到解决方法吗?@sendreams不幸的是,在尝试寻找解决方案一年后,问题仍然悬而未决。我找到了解决这个麻烦的方法。请参阅我答案中的链接。“远程调试”应该会有帮助。关于第二点,它都是32位的。不是那个问题。更重要的是第一点,关于路径。因为它是从控制台工作的,我将需要的路径写入路径。那么,如何对Eclipse执行同样的操作呢?或者如何检查使用eclipse的路径?如果从CMD.EXE启动eclipse,那么程序最终看到的路径应该与使用“设置路径”在CMD.EXE中看到的路径相同。不,从CMD.EXE启动没有帮助。。。在调试中,它像普通程序一样启动。我发现使用这个命令
-Djava.library.path=“${env_var:path}
eclipse可以看到所有需要的路径。所以我猜它的本机库无法在eclipse运行环境中进一步调用函数。
java -cp "bin;C:\Program Files\YAZ\java\yaz4j.jar" ru.Test