我想将具有不同路径的javaaddpath使用在我的Linux和Windows计算机上。

但是,我希望它是真正的动态分配。换句话说,用户可以定义自己的Path_Str ='...... / ParforProgMonv2 / java'并在此步骤将其传递:pctRunOnAll javaaddpath(Path_Str)

打开matlab池后,我想执行以下操作:

if strcmp(MonitorProcess, 'Yes')
    %add this line for progress monitor
    pctRunOnAll javaaddpath ('/home/dkumar/ParforProgMonv2/java')
end


但是,除了固定路径'/home/dkumar/ParforProgMonv2/java'外,我还希望包括在

'/home/dkumar/ParforProgMonv2/java''C:/Users/DK_GS/ParforProgMonv2/java'

取决于是我的视窗计算机还是Linux。

我尝试使用ClassPathHacker.java跟随this solution;但是,不明白。

一些帮助,将不胜感激。

最佳答案

这样的事情行吗?

searchpath = 'ParforProgMonv2/java'; % Directory to search for

if strcmp(MonitorProcess, 'Yes')
    switch computer
        case {'PCWIN', 'PCWIN64'}
            % 32 or 64 bit Windows
            % Use the system command to return all directories found on the machine
            % that match your search directory. Use a regex to clean up the list
            [~, cmdout] = system(['dir /s/b/AD | find "' searchstr '"');
            allpaths = regexp(cmdout, '(.:\\[\w\-\\. ]+\w+(?=\s))', 'match'); % Split directory names, 1st cell should be the top level
            pctRunOnAll javaaddpath (allpaths{1})
        case 'GLNXA64'
            % Linux
            pctRunOnAll javaaddpath ('/home/dkumar/ParforProgMonv2/java')
        otherwise
            % Insert error handling here
    end
end


其中,computer返回一个字符串,该字符串指定当前正在运行的计算机类型。

编辑:根据您的评论,我建议添加一种方法来搜索您的文件路径并返回一个字符串。我已经为Windows添加了一个示例。我对Linux不够熟悉,无法正确翻译。

08-07 22:34