您的位置:首页 > 编程语言 > MATLAB

java调用matlab

2010-11-24 17:11 281 查看
从暑假前就开始做分类器了,当然熬时间而已,并没有真正去好好做。从11月初算是真正开始做了,困难重重啊,应该怪自己基础不够扎实吧?

目前为止,几个分类器在matlab中已经勉强能用,之所以说勉强是因为有些参数的用法和设置还没明白,有时间还得在好好学习一下模式分类。

从上周五到现在,使用matlab builder for java:

1 我使用的是myeclipse6.0和matlab2009a,不用在电脑的环境变量中设置,只要在matlab的command窗口运行

setenv('JAVA_HOME','D:/Program files/Java/jdk1.5.0_06')

就可以了,但每次重启matlab都得运行一下。

2 deploytool,在deployment窗口新建一个project(我的project name 是classifier),加入要编译的文件,运行即可。

3 把javabuilder.jar和classifier.jar拷到工程的lib文件夹下,再在于myeclipse中倒进来。就可以在java程序中调用了。

在使用这些来自matlab的类时也有很多问题,如参数和返回值的数据类型什么的,不过matlab 的帮助文档matlab builer for JA中说得很详细。但我英文实在不好,看得也麻烦,更喜欢找个例子,运行成功之后,直接改成我的程序,但看了全部的例子,也没找到合适直接拿来用的,后来还是老老实实看了一些文档。

目前的问题是,当“run as java application ”时,出错,但有运行结果,错误如下:

runtime Error!

Program: D:/Program files/Java/jre1.5.0_06/bin/javaw.exe

R6034

An application has made an attempt to load the C runtime library incorrectly.

please contact the application's support team for more information.

当在structs1.2下,通过网页访问时,就出现了下面两种错误:

一:

java.lang.NoClassDefFoundError
classifier.Classifier.<init>(Classifier.java:122)
edu.bjut.nlp.classifier.Classifier2.Discrete_Bayes(Classifier2.java:166)

二:

java.lang.UnsatisfiedLinkError: Failed to find the library mclmcrrt710.dll, required by MATLAB Builder JA, on java.library.path

com.mathworks.toolbox.javabuilder.internal.MCRConfiguration$ProxyLibraryDir.get(MCRConfiguration.java:123)
com.mathworks.toolbox.javabuilder.internal.MCRConfiguration$ProxyLibraryDir.<clinit>(MCRConfiguration.java:126)
com.mathworks.toolbox.javabuilder.internal.MCRConfiguration.getProxyLibraryDir(MCRConfiguration.java:131)
com.mathworks.toolbox.javabuilder.internal.MCRConfiguration$IsInstalledMCR.get(MCRConfiguration.java:33)
com.mathworks.toolbox.javabuilder.internal.MCRConfiguration$IsInstalledMCR.<clinit>(MCRConfiguration.java:41)
com.mathworks.toolbox.javabuilder.internal.MCRConfiguration.isInstalledMCR(MCRConfiguration.java:46)
com.mathworks.toolbox.javabuilder.internal.MWMCR.<clinit>(MWMCR.java:1442)
classifier.ClassifierMCRFactory.<clinit>(ClassifierMCRFactory.java:99)
classifier.Classifier.<init>(Classifier.java:122)
edu.bjut.nlp.classifier.Classifier2.Discrete_Bayes(Classifier2.java:166)

轮流出现,我现在也不知道什么情况下会出现哪一个,并且和上面那个错误有没有关系呢?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: