Java应用程序和java Web调用Matlab配置实例
?
1.java Web 调用Matlab程序
问题背景:
??? 最近在做一个生物信息学的GPCR(g蛋白偶联受体)预测网站,在构建数学模型及求解过程中使用的编程工具是Matlab,之所以用Matalb主要是考虑到其强大的矩阵计算能力和简单易学的编程语言。但是,在网站建设中我使用的开发语言是JSP,使用Tomcat做WEB服务器。为了直接使用前期在Matlab上建模所用的程序,以免把这些程序翻译成Java程序而带来的麻烦,决定在Tomcat中直接调用Matlab程序。
解决方案:
?? 1. 首先,要用matlab中的工具matlab build for java,把你的matlab文件(包括.m文件,.mat文件等等)打包成一个jar文件并同时得到一个ctf文件(为下文叙述方便,假设为myproj.jar和myproj.ctf)。这个具体过程可以参见matlab的帮助文档,在那有具体的例子,照着样子做一遍就会了,本文就不详述了。
?? 2. 把myproj.jar和myproj.ctf置于一目录下,如:D:\dist\myproj.jar和D:\dist\myproj.ctf。具体的配置过程同样见matlab帮助文档。但在matlab帮助文档中是配置一个java application程序,如果照此配置web程序就会出现找不到类或找不到ctf文件的错误。相信大家只要是找matlab帮助文档实际操练一下都能正确地在java application程序中调用matlab生成的jar和ctf文件,可是要想在web程序调用jar和ctf文件则会遇到问题。因为,如果把myproj.jar和myproj.ctf放到tomcat的lib文件夹或webapp的lib文件夹下,由于tomcat是以相对路径来寻找这些目录下的jar文件的,可根据matlab帮助文档提示的ctf文件不能放到相对路径下,要置于绝对路径下。这就是程序会产生问题的根源。
??? 3.找到问题的结症所在,解决的办法也就有了。经我的实验,有以下2种方法可以使用。
??????? A. 把jar文件的路径设置到CLASSPATH中。如set classpath=%classpath%;D:\dist\myproj.jar
??????? B. 修改%TOMCAT_HOME%\bin目录中的setclasspath.bat文件,找到“set CLASSPATH=%JAVA_HOME%\lib\tools.jar”,修改为:set CLASSPATH=%JAVA_HOME%\lib\tools.jar;D:\dist\myproj.jar
以上2种方法总有一种是可行的,一般B成功的可能性大些。我曾经使用A方法在2台电脑上实验,结果有一台电脑找到ctf文件,而另一台电脑上则可以正确运行,后来使用B方法问题方得到解决。
2.java应用程序调用(详见附件)