一从Java和Matlab混合编程
1.1环境配置
我采用的是Java、jdk1.6.0_45、Eclipse、Matlab2013a,都是64位:
为什么我要强调环境配置都一样呢,首先,我之前Matlab用的是2013a32位的,会报错,Java和Matlab混编要求环境是统一的,同时我之前jdk用的是1.7.0_75,画不出图来,因为matlab必须联合1.6的jdk才能画出图来。
1.2编写plotsin.m和plotcos.m文件
1.3编译写好的两个函数制作一个java包(.jar)(complie the pltosin function as a java Package)如下图所示,使用deploytool命令,然后build
生成的文件夹
1.4 新建一个 Java Project工程,工程名JavaUseMatlab
右键点击工程名,添加(.jar)包
在java build Path的Libraries下,点击Add External JARS添加javabuilder.jar和建立的matlabplot.jar,如下图所示
javabuilder.jar和matlabplot.jar的位置如下图
1.4 新建个.java文件,右键工程名JavaUseMatlab,如下图所示
并在,MathPlotTest.java文件编写程序
1.5 Run As程序Java Application
结果如下图所示
这个过程就完成,这个例子网上有很多人做,我主要是在后面将生成的Figure,用JSP发布在网页上。
二 Java和Matlab混编 将生成figure发布网页上,直接使用JSP中的网页标签
以绘画的正弦曲线为例,进行说明
2.1 绘制正弦曲线函数plotsin.m
2.2 编译写好的plotsin函数制作一个java包(.jar)(complie the pltosin function as ajava Package)如下图所示,使用deploytool命令,然后build
生成的目录文件如下图所示
2.3新建一个Dynamic Web Project
Eclipse+Tomacat7.0.59+JDK1.6.0_45
右键点击建立的myweb工程,建立一个jsp文件
2.4右键myweb工程,点击Build Path下面的 Configure Build Path
在libraries下面,Add External JARs,将由matlab 生成的plotWeb.jar添加进来;plotWeb.jar在plotWeb的disturb文件夹下,以及matlab安装文件下的javaBuilder.jar文件,文件路径:D:\Program Files\MATLAB\R2013a\toolbox\javabuilder\jar\win64
同时将plotWeb.jar和javaBuilder.jar,拷贝到myweb工程下,WEB-INF下lib文件夹下面,如下图。
同时拷贝webfigures.tld文件,文件目录
D:\ProgramFiles\MATLAB\R2013a\toolbox\javabuilder\webfigures\ 到myweb的
WEB-INF文件夹下,如下图所示。
最后的工程项目机构图如下图所示:
2.5在生成的JSP文件下头部添加相应的引用项
引用webfigures.tld文件,定义标签项
<%@ taglib prefix="wf"uri="/WEB-INF/webfigures.tld"%>
引用WebFigure库,以及自己编写的Matlab类库,另外引用
com.mathworks.toolbox.javabuilder.*,也是必须的,因为其中包含一些Errors定义以及必要的类和接口定义。
<%@ page import="com.mathworks.toolbox.javabuilder.webfigures.WebFigure"%>
<%@ page import="com.mathworks.toolbox.javabuilder.*" %>
<%@ page import="com.mathworks.toolbox.javabuilder.internal.*" %>
<%@ page import="plotWeb.MathPlotSin"%>
最后再body体内添加代码:如图所示
2.6修改目录下web.xml文件,加入如下代码
2.7部署myweb项目到Tomcat,启动Tomcat
在浏览器中输入如下网址: http://127.0.0.1:8080/myweb/Test.jsp