Tomcat调用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方法问题方得到解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值