MATLAB R2016a Builder JA

(matlab内置JDk和windows版本JDK一定要一致)否则打包报错

一、配置要求 
1、MATLAB版本要求:R2016a版本 
判断是不是支持MATLAB Builder JA : 检查MATLAB安装文件夹下toolbox中是否有javabuilder这一项。 
2、安装JDK1.7版本。 
我的是jdk1.7.0_80 
二、环境配置 
1、配置环境 
a)设置变量JAVA_HOME:C:\ProgramFiles\Java\jdk1.7.0_80(必须设置) 
b)设置JAVA系统变量:

CLASSPTH:.;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar;
Path:C:\Program Files\Java\jdk1.7.0_80\bin;
 
 
  • 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

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

解决办法:下载一个破解完成的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

如果运行报错

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

本机当前安装版本,和引用的Mtalab生成的jar不是同一个版本。升级当前Matlab版本,或使用和本机相同的版本生成 jar文件。 
这里写图片描述

运行的效果 
这里写图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值