java与matlab混合编程

1、检测你安装的MATLAB与的安装的JAVA环境是否兼容

MATLAB Builder For MATLAB的环境配置主要包含以下几个内容:

想了解您的MATLAB软件兼容的Java环境(包括Java Developer's Kit (JDK) 和Java Run-time Environment (JRE)),请查看http://www.mathworks.com/support/compilers/current_release/

一、检查您的Java环境

也许您的计算机上已经正确安装了Java环境,现在我们就要确定下这个Java是不是和我们当前的MATLAB Builder For Java版本相兼容:

1、打开Window命令行CMD.exe。

cmd.jpg 

2、在CMD.exe中输入

  1. java -version
复制代码
,如果正确安装了Java,将返回如下类似信息:
java version "1.6.0_25"
Java(TM) SE Runtime Environment (build 1.6.0_25-b06)
Java HotSpot(TM) Client VM (build 20.0-b11, mixed mode, sharing)

如果返回如下内容,则说明您没有安装Java哦:
'java -version' 不是内部或外部命令,也不是可运行的程序或批处理文件。

3、在CMD.exe中继续输入
  1. javac -version
复制代码
注意:如果您没有在path环境变量中添加Javac的安装路径,此时您应该如下输入:
  1. %JAVA_HOME%\bin\javac -version
复制代码
其中%JAVA_HOME%为Java的安装根目录,如果您已经设置用户环境变量JAVA_HOME为JDK的路径,则可以直接使用%JAVA_HOME%,否必须自己手动将%JAVA_HOME%修改为JDK安装路径。

如果javac已经正确安装,MATLAB将返回如下信息:
javac 1.6.0_25


4、上面仅仅获取了JDK的版本,那到底是不是和我们MATLAB兼容呢?在您的Command Window中输入
  1. >> version -java

  2. ans =

  3. Java 1.6.0_17-b04 with Sun Microsystems Inc. Java HotSpot(TM) Client VM mixed mode
复制代码
从上面的信息中,知道我当前使用的MATLAB 2011a兼容Java 1.6.0_17,可是我的计算机上安装的JDK是1.6.0_25,是不是不兼容呀,呵呵,这点版本区别是没有问题的。

二、配置Java使用环境

要是很不幸,您的计算机上没有安装Java,那怎么办呢?好,下面我们就讲解下如何正确配置一个Java环境哦。

1、从Sun Micorsystems官方主页 http://www.oracle.com/technetwor ... ownloads/index.html 下载 与您当前MATLAB软件相兼容的Java Developer's Kit (JDK) !什么呀,不知道您的MATLAB兼容哪个JDK,哦,那就到 http://www.mathworks.com/support/compilers/current_release/ 看看吧!或者在您的Command Window中输入
  1. >> version -java

  2. ans =

  3. Java 1.6.0_17-b04 with Sun Microsystems Inc. Java HotSpot(TM) Client VM mixed mode
复制代码
从上面的信息中,知道我当前使用的MATLAB 2011a兼容Java 1.6.0_17,为了体验最新版的JDK于是我下载jdk-6u25-windows-i586.exe(SE表示标准版,6 Update 25是JDK的版本编号,表示1.6.0_25),而不是那个Java 1.6.0_17。

jdk.jpg 

jdk2.jpg 

是不是还想了解下什么是JDK和JRE呀,它有什么区别呢?那我就直接应用官方的原话了:
The JDK is a collection of Java classes, run-time environment, compiler, debugger, and usually source code, for a version of Java. The contents of the JDK collectively make up a Java development environment.

The JDK includes the Java Runtime Environment (JRE), a collection of compiled classes that makes up the Java virtual machine, a standalone executor of the Java language, on a specific platform.

2、安装刚刚下载的jdk-6u25-windows-i586.exe,我的安装目录是D:\Program\Java\jdk1.6.0_25。

3、添加JAVA_HOME用户环境变量,这个环境变量用于在MATLAB中告诉Java,JDK的安装在什么地方。Window系统添加环境变量(Unix平台就不介绍了)步骤为:

3.1 右击我的电脑选择属性

3.2 切换到高级选项卡

3.3 点击环境变量按钮

hjbl.jpg 

3.4 在用户变量区域,点击新建按钮:
变量名:JAVA_HOME
变量值:D:\Program\Java\jdk1.6.0_25(就是刚才JDK的安装路径)

hjbl2.jpg 

3.5 然后一路点击确定按钮返回即可。

4、检验MATLAB是否能够正确读取环境变量JAVA_HOME的值。重启MATLAB,并在Command Window中输入getenv JAVA_HOME,如果正确返回JDK的安装路径,那证明环境变量设置成功。
  1. >> getenv JAVA_HOME

  2. ans =

  3. D:\Program\Java\jdk1.6.0_25
复制代码
5、此时MATLAB Builder For Java环境配置完毕,试试想赶紧试一试呀。那不妨看看这个帖子 http://www.matlabsky.com/thread-17566-1-1.html


2、实例讲解

本节教程主要提供一个简单的Matlab Builder For Java的演示实例,在学习这个教程前,请先配置好您的Matlab Builder For Java运行环境,具体可以参考http://www.matlabsky.com/thread-17558-1-1.html

本次我们将一个AboutUs.m的M文件编译成Java的类,并在Java环境中测试运行。AboutUs.m文件就是在Command Window中显示出“MATLAB技术论坛”的介绍信息

  1. function AboutUs
  2. % By LaterComer of MATLAB技术论坛
  3. % See also http://www.matlabsky.com
  4. % Contact me matlabsky@gmail.com
  5. % Modifid at 2011-05-31 11:38:26
  6. %
  7. clc
  8. info=char(...
  9. 'MATLAB技术论坛 | Simulink仿真论坛 | MATLAB函数百科 | 最优秀专业和权威的MATLAB技术交流平台!',...
  10. ' ',...
  11. '官方网址:<a href="matlab:web http://www.matlabsky.com -browser">http://www.matlabsky.com</a> net/cn/org',...
  12. '服务邮箱:matlabsky@gmail.com',...
  13. '在线客服:1341692017',...
  14. ' ',... 
  15. '<a href="matlab:web http://www.matlabsky.com -browser">MATLAB技术论坛(Simulink仿真论坛)</a>由西北工业大学航空学院dynamic同学于2008年09月14日创建,',...
  16. '并在2010.08.01对论坛管理结构进行扩充和重组,新加入6名(yaksa,matsuper,yangzijiang,',...
  17. 'faruto,rocwoods,xiezhh)MATLAB高级爱好者!',...
  18. ' ',... 
  19. 'MATLAB技术论坛是目前国内优秀、专业和权威的MATLAB技术学习和交流平台!',...
  20. '致力为网友提供丰富的MATLAB教学资源、强大的MATLAB技术支持和全面的MATLAB有偿服务!',...
  21. ' ',... 
  22. '网站涵盖MATLAB视频教学,MATLAB下载安装,MATLAB经典教程,Simulink仿真科技,',...
  23. 'MATLAB函数速查,MATLAB汉化包,MATLAB电子期刊,MATLAB读书频道,GUI界面开发,',...
  24. '统计概率,拟合优化,混合编程,GPU高性能计算,神经网络,遗传算法,控制系统,',...
  25. '图像处理,经济金融,信号通信,医药生物,数学建模,电子电力,汽车设计等几十个方面!');
  26. disp(info);
复制代码
在演示之前,引用官方文字解释下两个名词:

What Is a MATLAB Builder JA Project?

To use the MATLAB Builder JA product, you create a project, which specifies the MATLAB code to be used in the components that you want to create. This product supports data conversion between Java types and MATLAB types. For more about projects and their contents, see Anatomy of a MATLAB Builder JA Project.

What Is a MATLAB Builder JA Component?
A component created by the MATLAB Builder JA product is a standalone Java package (.jar file). The package contains one or more Java classes that encapsulate MATLAB code. The classes provide methods that are callable directly from Java code.


一、生成Java组件

1、启动MATLAB,将上面的AboutUs.m保存到MATLAB的当前目录下,比如D:\Documents\MATLAB\JavaBuilder\AboutUSExample。

2、在Command Window中输入deploytool,打开发布工具。并填写或修改工程名称为AboutUsPrj,保存路径为D:\Documents\MATLAB\JavaBuilder\AboutUSExample,类型选择Java Pakage,并点击确定按钮。

JavaBuilder1.jpg 

3、此时打开Java Package窗口,点击工具栏最后的“Action”按钮,并选择“Setting...”,将Package Name修改为AboutUsPck(默认情况,Package Name为工程名)。当然这个我们没有必要一定要修改,根据个人习惯哦。

JavaBuilder12.jpg 

4、切换到“build”选项卡。在“Classes”栏,点击Add class为程序添加Java类,将类名Class1修改为AboutUsCls,如果要删除或者重命名Java类,可以右击类名进行操作。

JavaBuilder3.jpg 

然后点击Add files,选择AboutUs.m文件,作为类的方法(method,说白了就是我们需要运行的M文件)。

JavaBuilder2.jpg 

当然如果程序包含其他的数据、图片等资源文件,您可以添加到Shared Resources and Helper Files 栏。我们这个简单的演示程序就包含这些东西了。

总结下我们刚才的设置的Java Package程序的信息:
工程名:AboutUsPrj
类名:AboutUsCls
包文件名:AboutUsPck
编译文件:AboutUs.m

5、单击工具栏的“build”按钮对程序进行编译。编译时间根据自己计算机性能,一般在几分钟左右。此时这整个过程就完美结束了,是不是有点太小儿科了呀?

6、编译结束以后,在当前目录下生成了AboutUsPck文件夹,包含distrib和src两个子目录。distrib中的文件(特别是其中的AboutUsPck.jar文件,即编译的核心结果)就是Java Builder生成的可发布文件。AboutUsPck.jar其实是一个压缩包,我们可以使用WinRaR或者WinZip等软件打开。

JavaBuilder11.jpg 

二、在安装MATLAB的计算机上运行Java包

1、打开系统命令提示符CMD.exe行并输入如下命令。

JavaBuilder5.jpg 

2、先将当前目前切换到distrib目录,方便直接操作。
  1. cd /d D:\Documents\MATLAB\JavaBuilder\AboutUSExample\AboutUsPck\distrib
复制代码
3、调用JDK运行编译完的程序,D:\Program\MATLAB\R2011a\toolbox\javabuilder\jar\javabuilder.jar是MATLAB自带的javabuild的路径,逗号后面是刚才编译生成的包文件和对应的类
  1. java -classpath D:\Program\MATLAB\R2011a\toolbox\javabuilder\jar\javabuilder.jar;AboutUsPck.jar AboutUsPck.AboutUsCls
复制代码
4、如果命令提示符返回如下信息,那说明编译测试运行成功。

JavaBuilder6.jpg 

5、当然上面的dos命令可以在MATLAB中一次性输入:
  1. >> cd AboutUsPck\distrib % 将当前目录切换到distrib文件夹
  2. % 在MATLAB运行dos脚本命令,必须用!开头
  3. >> !java -classpath D:\Program\MATLAB\R2011a\toolbox\javabuilder\jar\javabuilder.jar;AboutUsPck.jar AboutUsPck.AboutUsCls
复制代码
运行结果如下:

JavaBuilder7.jpg 

三、在没有安装MATLAB的计算机上运行Java包

如果您的计算机没有安装MATLAB,此时您必须安装编译这个Java程序所对应MATLAB的MCR组件。

1、在MATLAB的Command Window中输入mcrinstaller,获取MCR的路径。
>> mcrinstaller
The WIN32 MCR Installer, version 7.15, is:
    D:\Program\MATLAB\R2011a\toolbox\compiler\deploy\win32\MCRInstaller.exe

MCR installers for other platforms are located in:
    D:\Program\MATLAB\R2011a\toolbox\compiler\deploy\<ARCH>
  <ARCH> is the value of COMPUTER('arch') on the target machine.

Full list of available MCR installers:
D:\Program\MATLAB\R2011a\toolbox\compiler\deploy\win32\MCRInstaller.exe

For more information, read your local MCR Installer help.
Or see the online documentation at  MathWorks' web site. (Page may load slowly.)

ans =

D:\Program\MATLAB\R2011a\toolbox\compiler\deploy\win32\MCRInstaller.exe

2、将这个MCRInstaller.exe连同刚才的AboutUsPck.jar一起发布给您的客户。如果要运行AboutUsPck.jar,请先安装MCRInstaller.exe。不妨假设MCRInstaller.exe安装在d:\Program\MCR,且AboutUsPck.jar保存到D:\javabuilder\AboutUsPck.jar。

3、当然您可以在那个deploytool的Java Package界面中直接打包那个MCR。

3.1 切换到Package选项卡,点击那个Add MCR链接。

JavaBuilder8.jpg 

3.2 选择Embed the MCR in the package,确定。并点击工具栏倒数第二个Package按钮生成打包文件。

JavaBuilder9.jpg 

JavaBuilder10.jpg 

3.3 此时会将MCRInstaller.exe和distrib目录下的文件,自动打包生成一个AboutUs_pkg.exe的自解压文件,您将他发给用户就可以的。用户双击这个exe的时候会自动安装MCRInstaller.exe。

4、在Windows自带的命令提示符中输入如下命令(当然您的目标计算机上一定要安装JDK哦):

4.1 切换当前目录到AboutUsPck.jar所在目录
  1. cd /d D:\javabuilder\
复制代码
4.2 调用JDK运行编译完的程序,d:\Program\MCR\toolbox\javabuilder\jar\javabuilder.jar是MCR自带的javabuild的路径,逗号后面是Java包文件和对应的类
  1. java -classpath d:\Program\MCR\toolbox\javabuilder\jar\javabuilder.jar;AboutUsPck.jar AboutUsPck.AboutUsCls
复制代码
4.3 如果命令行能够返回上面图片展示的效果,那祝贺您,成功了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值