Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
|
![]() |
#1 |
高级会员
注册日期: 2019-11-21
帖子: 3,006
声望力: 66 ![]() |
![]()
我一直在将简单的Java模块集成到Windows上的MATLAB环境中,并取得了一些成功。最近,我遇到了尝试加载dll的第三方库的问题。
尝试加载时,java ClassLoader抛出UnsatisfiedLinkError: java.lang.UnsatisfiedLinkError: no in java.library.path at java.lang.ClassLoader.loadLibrary(Unknown Source) at java.lang.Runtime.loadLibrary0(Unknown Source) at java.lang.System.loadLibrary(Unknown Source) 异常报告我的“ libname”不在java.library.path属性中。我已验证该属性确实具有正确的路径,并且该路径上存在libname.dll文件。 我以两种方式验证了java.library.path。首先,我只是检查了在MATLAB命令行上返回的值: >> java.lang.System.getProperty('java.library.path') 然后,我修改了有问题的java方法,以在调用失败的第三方函数之前打印该值: System.out.println(System.getProperty('java.library.path')); 两者都确认我的路径值已按预期设置。 我也尝试过从命令行手动加载库,但失败了,结果相同。 这是MATLAB中无法实现的,还是我在这里遗漏了一些东西?不幸的是,我不是这台计算机的管理员,所以我无法尝试将dll移入包含有效dll的目录的旧技巧。 如果没有绝对的答案,我欢迎您提出任何建议。 平台:Windows XP MATLAB R2009a Java 1.6 回答: 刚刚在MATLAB文档中找到了这一点: 指定Sun Java本机方法DLL的搜索路径 MATLAB用于查找Java所需的本机方法库的机制已更改。 MATLAB不再使用系统环境变量来定义这些库的路径。 兼容性注意事项 如果为此目的当前依赖于PATH(对于Windows)或LD_LIBRARY_PATH(对于UNIX)环境变量,则将需要使用如下所述的文件librarypath.txt代替它。 指定Java库路径 Java类可以使用Java方法java.lang.System.loadLibrary(“ LibFile”)动态加载本机方法。为了使JVM软件能够找到指定的库文件,包含它的目录必须在Java库路径上。该路径是在MATLAB启动时启动JVM软件时建立的,并且基于文件的内容 $ matlab / toolbox / local / librarypath.txt (其中$ matlab是由MATLAB关键字matlabroot表示的MATLAB根目录)。 您可以通过编辑librarypath.txt文件来扩展本机方法库的搜索路径。编辑此文件时,请遵循以下准则:
更多&回答... |
![]() |
![]() |