【问题标题】:Matlab-Java interface, conflicting Java versionsMatlab-Java 接口,Java 版本冲突
【发布时间】:2012-07-01 11:39:28
【问题描述】:

我使用 Matlab 部署工具将 matlab 代码构建到 java 项目中。我的 Matlab-Java 接口有问题,运行 java 代码时的错误是:

线程“主”java.lang.UnsatisfiedLinkError 中的异常:未能 在上找到 MATLAB Builder JA 所需的库 mclmcrrt7_15.dll java.library.path。该库通常与 MATLAB 或 MCR,它的缺失可能表明存在问题 安装或当前路径配置。 此组件尝试使用的是:7.15。

当我在 Matlab 控制台中输入“version -java”时,答案是 Java 1.6.0_17-b04。因此,我将系统设置中的路径更改为 ...\Files\Java\jdk1.6.0_33\bin 但由于我安装了 Java 版本 7,它没有使用版本 6。在命令提示符下,当我检查java和javac的版本时,我看到javac的版本是1.6,而java的版本是1.7。我还创建了一个 CLASSPATH 环境变量和一个 JAVAHOME 变量并将其设置为 1.6。请告诉我如何将系统使用的java版本更改为1.6,以便matlab可以与之交互?

我认为这是问题所在,但我只是从错误消息中猜测。如果问题是其他问题,请告诉我,而不仅仅是 java 版本的不兼容。

【问题讨论】:

标签: java matlab matlab-deployment


【解决方案1】:

PATH 上的 DLL mclmcrrt7_15.dll 是否在任何地方?

为了让 Java 能够加载 DLL,DLL 需要位于java.library.path 系统属性中列出的文件夹中。此属性在 Windows 上的默认值为 PATH 环境变量。

【讨论】:

  • DLL mclmcrrt7_15.dll 最初位于文件夹 C:\Program Files\MATLAB\MATLAB Compiler Runtime\v715\runtime\win64
  • 但我将它复制到了 PATH 文件夹中。它仍然给出同样的错误。
  • 为什么将DLL复制到PATH上已经存在的文件夹,而不是将包含DLL的文件夹添加到PATH?也许这个 DLL 正在尝试在此文件夹中查找其他 DLL,但由于找不到它们而无法加载?
  • 好吧,我的错。现在我将包含 DLL 的文件夹添加到 PATH。它仍然给出同样的错误..
  • 在更改 PATH 后是否重新启动了 MATLAB? (我承认我实际上并没有一起使用 MATLAB 和 Java,而且我目前无法访问 MATLAB 安装,但我以前使用过 Java 和外部 DLL。我也承认我已经没有关于如何解决您的问题。)
【解决方案2】:

只需修复我机器上的相同错误即可。 在我的情况下,通过将MATLAB 路径添加到SYSTEM 环境变量中来修复它:

添加PATH

-C:\Program Files\MATLAB\R2011a\bin;
-C:\Program Files\MATLAB\R2011a\runtime\win64

希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-27
    • 2013-11-08
    • 1970-01-01
    • 2012-04-18
    • 1970-01-01
    • 1970-01-01
    • 2020-07-16
    • 2019-08-07
    相关资源
    最近更新 更多