Windows、Linux、Web安装及调用Matlab程序完整说明(大章)

本文档详细说明了Linux下Web项目调用Matlab函数的完整操作,文章适合对Java、Linux有一定基础了解的人群(不了解也没什么,无非是多试几次)。因Linux作为服务器,所以未在其上安装Matlab主程序,只安装了运行环境MCR。

本文档内所述的所有版本软件均以32位为准,JDK与MCR也使用32位。若你的系统为64位,Linux系统同样为64位,则请尽量选择使用64位版本的JDK与MCR。

由于Matlab的版本限制问题,请保证Matlab主程序和MATLABCompiler Runtime版本一致,本文以Matlab_R2012a_glnx32演示。

本文介绍的是web项目使用jsp调用matlab,环境需要安装JDK,且需设定完整JAVA环境变量,本文Windows与Linux中均需安装同版本同位数的JDK。

注:本文中出现的 win32指32位系统,win64则为64位系统。

本文采用的系统版本为中标麒麟国产操作系统,内核Linux,调用Matlab。

MCR= MATLAB Compiler Runtime

本文中会在各个环节最后一项中注明本环节容易出现的错误和解决办法。

实现该功能原理:

在windows上编写Matlab的算法,后打包发布成Jar文件;编写Java代码,引用Matlab运行包JavaBuild.jar,并加入算法Jar包。

若单独运行该算法,则将Java代码与这2个Jar包进行发布打包成Jar,将此Jar包导入Linux后通过命令java –jar xxx.jar执行该程序。

若该算法是项目一部分,则不需要生成Jar包,直接在项目中加入算法包和运行包,调用即可。

==========================================================================

实现步骤:

1、  安装Matlab

2、  安装MATLABCompiler Runtime

3、  编写Matlab算法

4、  算法生成Jar包

5、  编写Java代码调用算法Jar包

6、  发布完整Jar执行

7、  Windows下Web项目JSP调用Matlab

8、  调用Matlab问题分析与解决

9、  Linux安装MATLAB Compiler Runtime操作

10、Linux安装Tomcat

11、Linux下web项目JSP调用Matlab

==========================================================================

安装Matlab(省略非必要说明):

1、  直接点开安装文件,执行setup.exe。

2、  安装过程中请以不联网安装。

3、  该文件秘钥请到安装文件路径:crack/ install.txt中,看到standalone选项下的enter the "file installation key",复制其中的一串数字,本文为38699-60149-36808-21840-05491。

4、后续步骤按提示下一步安装完成即可。

5、安装完毕后,请打开程序目录:MATLAB\R2012a\runtime\win64,将文件mclmcrrt7_17.dll放入文件系统:C:\Windows\System32。如果是64位系统,还需放到C:\Windows\SysWOW64

==========================================================================

安装MATLAB Compiler Runtime(省略非必要说明):

1、  如果有与Matlab主程序版本一致,位数一致的安装文件,请直接安装;若没有,则找到安装文件所在目录:MATLAB\R2012a\toolbox\compiler\deploy\win64,找到里面的MCRInstaller.exe,执行安装。(注:标红路径是根据自己的系统位数而定,也可能是win32)

2、  安装过程中请以不联网安装。

3、  激活所需要的license文件,请指向安装文件目录中的:crack/ lic_standalone.dat

4、  安装完成后需要调整本地的环境变量顺序,请将Path中关于MATLAB Compiler Runtime放到Matlab主程序环境变量前面,同时要保证Java环境变量在这两者之前。

例如:

%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; F:\Program Files\MATLAB\R2012a\runtime\win32;F:\Program Files\MATLAB\R2012a\bin;F:\ProgramFiles\MATLAB\MATLAB Compiler Runtime\v717\runtime\win32

变更为

%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;F:\Program Files\MATLAB\MATLAB CompilerRuntime\v714\runtime\win32;F:\Program Files\MATLAB\R2012a\runtime\win32;F:\ProgramFiles\MATLAB\R2012a\bin

==========================================================================

编写Matlab算法并生成Jar:

1、  打开Matlab主程序,MATLAB\R2012a\bin\matlab.exe。

如果CPU为AMD,请添加系统环境变量:BLAS_VERSION:Matlab所在路径

2、这里我们编写一个函数算法,file à new à function,在弹出层填上如下信息。

函数内容为,传入2个参数a、b,运算加减法,返还sum和sub,获取时可以获取1个或2个。接着保存该function,Matlab的算法格式为m。

3、在Matlab主界面Command  Window中输入,deployTool。

4、这里直接创建一个新的算法项目,name为指定项目名称,location为指定项目的空间位置,可以自定义,type请选择Java Package,我们这里是用Java调用该程序,点击OK。

5、  在弹出的JavaPackage窗口中,点击Build中class下的add Class,这里需要指定class的名称,该class指的是Java中你调用的Object。

6、  继续点击Addfiles,找到之前编写的function文件,导入进去

7、 点击,会将该算法函数封装成Jar文件,导出目录为3步骤中设置的location地址。

8、  在Math\distrib中的Jar即为算法包(这里的Math是步骤3中的name)。

9、完成。

==========================================================================

编写Java代码调用算法Jar包:

注意事项:此步骤进行前,请保证安装了JDK,cmd环境下执行java命令确认。

1、  创建的Java项目,JDK需要与系统JDK一致,否则可能导致无法本机测试;

这里需要导入Matlab的库,目录为:

MATLAB CompilerRuntime\v717\toolbox\javabuilder\jar\javabuilder.jar

2、  创建Class文件,引入算法jar包到项目中,在代码中调用算法对象。(注意:在项目工程中导入1和2中的jar包,web工程放到lib下面,java工程以引入外部JAR形式)

3、  继续编写完毕代码

4、  编写完毕后直接运行代码测试,输出2个结果21和-1即为正确。若出现问题,请移步第8步。

5、  右键java项目,导出,选择导出为RunnableJar file,下一步

6、  继续,在Launchconfiguration中选择自己编写的java代码。Export destination中填写导出Jar文件的目录和文件名,完成。

7、  测试该Jar,打开cmd窗口,输入 java –jar文件所在目录/MathForJava.jar

若执行成功,则完成测试。

若提示命令有误,检查自己的Java环境变量

8、无法执行本地调用Matlab函数JAR包,容易出现的问题

a检查你的环境变量Path:

%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

F:\Program Files\MATLAB\MATLAB Compiler Runtime\v717\runtime\win32;

F:\Program Files\MATLAB\R2012a\runtime\win32;F:\ProgramFiles\MATLAB\R2012a\bin;

这是2个程序,需要都配置环境变量。

b Matlab与MCR都要安装,只安装一个不够,因为需要编写函数生成JAR,只生成JAR还需要运行时环境。

==========================================================================

Windows下Web项目JSP调用Matlab:

本环节需要准备JDK和JAVA编译器以及部署项目服务器,本节使用Eclipse和Tomcat。

1、  创建web工程,工程中需要引入javabuild.jar和Matlab函数的JAR包,直接放到lib里

2、  下面进行对Matlab函数Math.jar进行调用,分2种方式,本文仅作简单测试,并不搭建web框架进行传地址。

3、  使用JSP测试调用sum2.jar中封装对象,测试函数输出结果。

A 创建jsp页面,在jsp页面头部文件引用包

<%@ page language="java" import="java.util.*"pageEncoding="UTF-8"%>
<%@ page import="com.mathworks.toolbox.javabuilder.*"  %>
<%@ page import="com.mathworks.toolbox.javabuilder.internal.*"  %>
<%@ page import="Math.MathClass" %>

中间2条引入为需要引入的包和异常处理支持,最后一个为Matlab函数JAR包对应的对象。

页面<body>中增加代码

<%
    Object[] result = null;
    MathClass ms = new MathClass();
    result = ms.MathTest(1, 44, 11);
%>
<h2><%=result[0] %></h2>

部署web项目到Tomcat,这里省略部署过程。

之后直接启动Tomcat,访问对应路径:http://localhost:8080/matlabDraw/index.jsp

若访问不出错,有结果为55,则输出正确,测试成功。

B 若需要调用的为作图类型,则使用这个办法。

在web项目,web-inf目录下加入webfigures.tld标签库,文件在Matlab中有,MATLAB\R2012a\toolbox\javabuilder\webfigures

在jsp页面引入A中的标签除外,继续增加

<%@ taglib prefix="wf" uri="/WEB-INF/webfigures.tld"%>
<%@ page import="com.mathworks.toolbox.javabuilder.webfigures.WebFigure"%>

在web.xml中也请增加引入Webfigures,

<servlet>
    <servlet-name>WebFigures</servlet-name>
    <servlet-class>
        com.mathworks.toolbox.javabuilder.webfigures.WebFiguresServlet
    </servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>WebFigures</servlet-name>
    <url-pattern>/WebFigures/*</url-pattern>
</servlet-mapping>

最后在页面中加入如下标签,获取函数返回对象WebFigure,然后进行展示。

<wf:web-figure name="YourFigure" scope="session"/>
时间: 2024-10-11 04:43:03

Windows、Linux、Web安装及调用Matlab程序完整说明(大章)的相关文章

安装及调用Matlab程序可能存在的问题解决办法

无法执行本地调用Matlab函数JAR包,容易出现的问题 a检查你的环境变量Path: %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; F:\Program Files\MATLAB\MATLAB Compiler Runtime\v717\runtime\win32; F:\Program Files\MATLAB\R2012a\runtime\win32;F:\ProgramFiles\MATLAB\R2012a\bin; 这是2个程序,需要都配置环境变量. b M

Web(jsp,html)调用Matlab程序

本环节需要准备JDK和JAVA编译器以及部署项目服务器,本节使用Eclipse和Tomcat. 1.  创建web工程,工程中需要引入javabuild.jar和Matlab函数的JAR包,直接放到lib里 2.  下面进行对Matlab函数Math.jar进行调用,分2种方式,本文仅作简单测试,并不搭建web框架进行传地址. 3.  使用JSP测试调用sum2.jar中封装对象,测试函数输出结果. A 创建jsp页面,在jsp页面头部文件引用包 <%@ page language="ja

在C#的Web项目中调用Matlab代码的方法

为了毕设的图形检索方向的研究,本人需要在信科的师兄师姐们已经完成的C#界面中,调用现在研究的算法的Matlab代码,以便看到实验的效果.前段时间已经拖延了1个多月,一方面因为实习越来越多事情,时间减少了很多:但更重要在于C#调用Matlab的方法真心麻烦,C#的Web项目中进行这个操作貌似会碰到更多细节上的问题.而且总是很不稳定,操作系统.Matlab或VS的版本.遗漏一些文件或步骤都会造成失败!这个问题本人已经搞了很长时间,直至前几天,在同学的帮助下,自己再弄一遍,总算成功了!下面我及时把这个

C/C++程序通过动态链接库调用MATLAB程序

C/C++程序通过动态链接库调用MATLAB程序 1 MATLAB编译器设置 需要设定对应的C++编译器才能编译.m文件生成可供C++调用的库文件. 在MATLAB命令行输入:mex –setup:然后继续输入:mbuild –setup,选择已安装的VC编译器. 2 将MATLAB程序编译成C/C++动态链接库 假设存在一个Add.m的文件需要编译成库文件: function C=Add(A,B) C=A+B; end 2.1 将MATLAB程序编译成C动态链接库 采用mcc编译选项: >>

Windows中使用 Python 调用 Matlab 程序

环境变量: 1 Python-Matlab引擎 / Pyhton-Matlab Engine 首先,需要确保Matlab及Python的配置和安装,利用Matlab提供的setup.py文件安装Python的引擎包,安装步骤及过程如下, 1. 确保安装可用的Python和Matlab,且两者版本对应,如32位的Matlab需对应32位的Python,同时还需查看Matlab支持的Python版本(目前2016a版支持的Python版本为2.7/…/3.5); 2. 添加Python目录到环境变量

Python的扩展接口[3] -&gt; Matlab引擎 -&gt; 使用 Python 调用 Matlab 程序

Python - Matlab 目录 Python-Matlab 引擎 Python-Matlab 数组 Python-Matlab 基本操作 Python-Matlab 调用 m 文件 Matlab的官方文档中介绍了Matlab与其余编程语言之间的引擎接口,其中包括对于Python开放的引擎API,可参考官方教程,其中包括引擎安装,基本使用,以及Python与Matlab之间的数据类型转换及交互. 除了使用官网的Matlab引擎来驱动Matlab外,还可以使用第三方包mlab来进行连接或直接使

windows linux 下安装mysql 报1045 等错误

曾经在windows 下安装mysql 没怎么出现过问题.而在linux下安装的时候出现了一些问题,昨天在windows 安装的时候也出现了1045 错误.就个人经历来看这个问题就是 root用户password的问题,所以将解决的方式总结例如以下: 一.mysql登录报 1045 错误 mysqladmin: connect to server at 'localhost' failed error: 'Access denied for user 'root'@'localhost' (us

windows linux 下安装mysql 报1045 等

以前在windows 下安装mysql 没怎么出现过问题,而在linux下安装的时候出现了一些问题,昨天在windows 安装的时候也出现了1045 错误,就个人经历来看这个问题就是 root用户密码的问题,所以将解决的方式总结如下: 一.mysql登录报 1045 错误 mysqladmin: connect to server at 'localhost' failed error: 'Access denied for user 'root'@'localhost' (using pass

[python][matlab]使用python调用matlab程序

问题引入 在做实验的时候,需要用到python和matlab工具来进行不同的处理,比如在run神经网络的时候,需要使用pytorch框架得到网络的各个参数,在得到参数后需要使用matlab进行聚类规划.之前的做法是用python脚本耦合其联系,两者通信的方式是通过文件.后来发现matlab有针对于python的api引擎,瞬间感觉打开了新世界的大门,只需要在python中调用相关的api,就可以完成matlab的工作,再也不用一个一个复制文件了. 解决思路 首先,我安装的是matlab R201