Matlab以编程方式将本机库添加到路径中

时间:2012-12-13 17:31:56

标签: matlab matlab-deployment

背景

我有一个Matlab代码库(或 App 现在使用r2012b),我将其分发给用户。

此应用程序将JNI与本机库(多个 .dll 文件)一起使用。在我的本地计算机上,这需要 librarypath.txt javalibrarypath.txt (r2012b)文件中的条目,如MathworksUndocumented Matlab所述

问题

有没有办法以编程方式将本机库添加到Matlab java类路径?

我想写一个 initMyLibrary.m 脚本,其中:

  • 用户无需手动修改这些文件。
  • 代码可以用作编译的MCR应用程序。
  • init不会销毁用户现有的 javalibrarypath.txt
  • 假设没有管理员权限(无法修改Matlab基础安装)。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

这可能很麻烦,而且我不是这方面的专家,但在 initMyLibrary.m 中不会有类似的工作:

currentdir = pwd; % or any other directory you know the dll will be in
if ispc
    system(['setx path "%path%;' currentdir '"']); % only works from windows 7 onwards though, for xp or vista youll have to change the registry with reg
elseif isunix
    system(['export PATH=$PATH:' currentdir]); % dont know if this works without admin rights though...
elseif ismac
    % for mac I dont know how to do this without admin rights
else
    error('whatever') % error handling
end

因为我认为如果你的dll在系统路径上,这应该没问题吗?不要忘记在应用程序结束时恢复路径。

无论如何,所有这些都可能有点危险......