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

MATLAB R2014a Builder JA总结

2017-06-30 21:32 148 查看
一、配置要求 

1、MATLAB版本要求:至少R2006b版本(我是R2014a), 

判断是不是支持MATLAB Builder JA : 检查MATLAB安装文件夹下toolbox中是否有javabuilder这一项。 

2、安装JDK1.5版本以上。 

我的是jdk1.7.0_51 
二、环境配置 

1、配置环境 

a)设置变量
JAVA_HOME:C:\ProgramFiles\Java\jdk1.7.0_51
(必须设置) 

b)设置JAVA系统变量:
CLASSPTH:.;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar;
Path:C:\Program Files\Java\jdk1.7.0_51\bin;
1
2
1
2
c)添加路径D:\MATLAB\toolbox\javabuilder\jar\javabuilder.jar;到CLASSPTH。 

进行完上述设置后就可以用Java Builder简单的开发了。但需要说明的是,如果你的Java程序中还调用了其他的.jar包,则应该在CLASSPTH中进行相应的设置。 

特别注意:所有路径中最好不要包含中文、空格,否则将解析不正确。 

2、配置检查 

a)CMD窗口键入 java –version和javac -version ,返回 


 

c)MATLAB窗口键入getenv JAVA_HOME,返回JDK的路径 


 
三、用java Builder创建JAVA组件 

1、编写、测试并保存用来创建Java组件的MATLAB代码(.m文件)。 

drawplot.m
%画图 自定义函数drawplot 参数 x y
function drawplot(x, y)
plot(x, y); %%使用matlab函数plot()作图
grid on %网格显示
xlabel('X轴值')
ylabel('Y轴值')
title('Java调用MatLab作图例子')
1
2
3
4
5
6
7
1
2
3
4
5
6
7
2、在Command Window中执行deploytool,打开Deployment tool窗口。 









如果出现失败
ant:
<ant>
<mkdir dir="F:\BaiduYunDownload\MATLAB\test\for_redistribution" />
<mkdir dir="F:\BaiduYunDownload\MATLAB\test\for_testing" />
</ant>
mcc -W lib:test -T link:lib -d F:\BaiduYunDownload\MATLAB\test\for_testing -v F:\BaiduYunDownload\MATLAB\test.m class{Class1:F:\BaiduYunDownload\MATLAB\test.m}
Test checkout of feature 'Compiler' failed.
mcc 失败。
1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8
解决办法:下载一个破解完成的matlab R2014a fully crack.rar,然后替换掉就可以啦 

分享我的网盘 http://pan.baidu.com/s/1nvQv9CP
到这里打包工作全部完成 

注:整个工程的结构关系: 


 

对应关系表格: 

创建后 

创建前 

备注 

包packag- 

com.mathworks.projectname 

在JAVA中用于import导入 

组件component 

projectname/componentname
类class 

projectname/classname(default name,can rename class) 

在JAVA中需要实例化的类 

方法method 

函数.m文件 

functionname.m 

在JAVA中通过实例化之后的类来调用的方法 

1、在Myeclipse中创建JAVA工程,在工程属性的BuildPath中,添加两个jar包:javabuilder.jar以及新生成的projectname.jar包。 

2、编写JAVA函数,调用刚刚生成好的.jar中的方法。开始导入: 

import com.mathworks.toolbox.javabuilder.*; 

import com.mathworks.componentname.classname; 

3、JAVA到MATLAB之间的数据类型转换。 

a)手动转换(关于MWAray类的用法,参见:MATLAB help文件中com.mathworks.toolbox.javabuilder package) 

b)自动转换(用JAVA语言定义的类、数据,存储使用的数据。Eg. java.lang.Double)
具体的java 代码 

ConnectMatLabTest.java
package com.xiami.test;

import com.mathworks.toolbox.javabuilder.MWArray;
import com.mathworks.toolbox.javabuilder.MWClassID;
import com.mathworks.toolbox.javabuilder.MWComplexity;
import com.mathworks.toolbox.javabuilder.MWNumericArray;

import Demo.plotter;

public class ConnectMatLabTest {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
MWNumericArray x = null; // 存放x值的数组
MWNumericArray y = null; // 存放y值的数组
plotter thePlot = null; // plotter类的实例(在MatLab编译时,新建的类)
int n = 20; // 作图点数

try {
// 分配x、y的值
int[] dims = { 1, n };
x = MWNumericArray.newInstance(dims, MWClassID.DOUBLE,
MWComplexity.REAL);
y = MWNumericArray.newInstance(dims, MWClassID.DOUBLE,
MWComplexity.REAL);

// 定义 y = x^2
for (int i = 1; i <= n; i++) {
x.set(i, i);
y.set(i, i * i);
}

// 初始化plotter的对象
thePlot = new plotter();

// 作图
thePlot.drawplot(x, y);
thePlot.waitForFigures();
}

catch (Exception e) {
System.out.println("Exception: " + e.toString());
}

finally {
// 释放本地资源
MWArray.disposeArray(x);
MWArray.disposeArray(y);
if (thePlot != null)
thePlot.dispose();
}
}

}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
如果运行报错
Caused by: java.lang.UnsatisfiedLinkError: Failed to find the library mclmcrrt8_3.dll, required by MATLAB Builder JA, on java.library.path. This library is typically installed along with MATLAB or the MCR, its absence may indicate an issue with that installation or the current path configuration.The MCR version that this component is trying to use is: 8.3.
1
1
本机当前安装版本,和引用的Mtalab生成的jar不是同一个版本。升级当前Matlab版本,或使用和本机相同的版本生成 jar文件。 



运行的效果 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: