matlab for java 的实例配置

来源:互联网 发布:知乎日报 不支持阅读 编辑:程序博客网 时间:2024/06/15 02:52

 (根据matlab的帮助文件一步步操作,截图(这里看不见))

1.       检查Java环境

1)  打开运行窗口

2)  输入命令:java –version,查看java版本信息

3)  输入命令:javac –version,查看javac版本信息。如果在系统环境中,JDK路径不是设置在系统变量path中,而是设置在用户变量Java-home中,应加上相应路径,输入命令为:%JAVA_HOME%/bin/javac –version

4)  以上检查完成后,就可以进行操作,否则重新配置java环境。

2.       实例:发布一个矩阵实例,将M-code编写的功能转换成java可用的组件。

1)  matlab中所做工作

1)打开MATLAB  Builder  JA产品

启动matlab,在matlab的命令行窗口(以下所说命令,除非特指,均指在matlab的命令行窗口输入的命令)中输入命令:deploytool,打开java发布工具。检查matlab是否正确指向JDK的工作路径,输入命令:getenv JAVA_HOME,检查所指路径是否正确。

2)拷贝实例文件

     拷贝%matlab%/toolbox/javabuilder/Examples/MagicSquareExamplematlab的工作空间,把文件名MagicSquareExample重命名为magic_square

3)测试要发布的M-file文件

     matlab中导入在D:/javabuilder_examples/magic_square/MagicDemoComp 下的makesqr.m文件。为了确保能找到对应的文件,在matlab中要设置对应的工作搜索路径,在“file/setpath”设置工作搜索路径D:/javabuilder_examples/magic_square/MagicDemoComp,点击“save”。makesqr.m文件内容如下:

function y = makesqr(x)

%MAKESQR Magic square of size x.

%   Y = MAKESQR(X) returns a magic square of size x.

%   This file is used as an example for the MATLAB

%   Builder for Java Language product.

 %   Copyright 2001-2006 The MathWorks, Inc.

y = magic(x);

  测试m文件是否正常运行,输入命令:makesqr(5),运行结果。

4)创建Java组件

  a.创建新的发布项目。

点击发布工具箱的“新建”按钮。

在打开的窗口中,左边选择MATLAB Builder JA,右边选择Java Package。选择文件保存路径为D:/MyProgram/workspace/matlab/magic_square,输入文件名magicsquare,点击ok按钮。

 

b.重命名类名

MATLAB Builder JA 产品根据所建的项目名称自动给创建的类赋名,象目前创建后的项目magicsquare下的类,名称应为:magicsquareclass,重命名为magic

 

c.确认发布工具面板上的选项Generate Verbose Output已被选择。

 

d.magicsquare项目中添加m-file文件。先选择当前目录至makesqr.m文件所在的路径,在右边文件显示窗口中拖动对应的文件至发布工具窗口,系统自动将该文件放至对应类中,点击保存按钮。

 

e.构建项目,创建初始的java包。

在发布工具面板上点击构建项目按钮 ,系统开始构建项目,其操作结果,警告等信息会显示在output窗口上。构建后系统会在项目路径下生成两个文件夹:srcdistribsrc包含java源文件magic.class,distrib包含打包文件magicsquare.jar。构建路径及构建内容的选择可以在Deployment Project Settings dialog box设置。

 

(5)选择打包文件

点击发布工具面板上的settings按钮,打开设置页面。在左边窗口选择“Packaging”,右边窗口按表格指示操作,最后点击ok按钮。

要打包的文件

操作

MCR Installer

选中Include MCR.选项.

Auto-generated Javadoc documentation

Additional Files窗口选择项目的/src/doc,点击Add按钮,添加到右边栏上。

readme.txt

Additional Files窗口选择项目的/distribreadme.txt,点击Add按钮,添加到右边栏上。

 

 

6)运行打包程序。点击发布工具面板上的打包按钮,对项目进行打包。然后用压缩工具把distrib里的文件打包起来。

 

2)  java平台下所做工作

(1)       搜集所需的文件,包括:

a.MCR Installer

b.Javadoc documentation

c.readme.txt file

d.com.mathworks.toolbox.javabuilder (%matlab%/toolbox/javabuilder/jar/javabuilder.jar)

e. MATLAB Builder JA创建的magicsquare.jar

(2)       java开发平台测试组件

新建一个java项目magic,在src目录下新建一个java程序Getmagic.java,实例文件/javabuilder_examples/magic_square/MagicDemoJavaApp中已经提供源代码。Getmagic.java的源代码见附录1

magic项目中导入所需的两个jar包,一个是之前用MATLAB Builder JA创建的magicsquare.jar,一个是javabuilder.jar%matlab%/toolbox/javabuilder/jar/javabuilder.jar

(3)       配置MyEclipse的运行环境。选择Getmagic.java程序,右键选择run-open run dialog,左边选择Application/file,右边需要配置的选项卡有MainArgumentsEnviroment


Main
选项卡:选择相应的程序,和main函数所在的类,点击apply按钮。
Arguments
选项卡:在Program Arguments中输入参数,如本例输入:5,点击apply按钮。
Enviroment
选项卡:设置matlab的动态链接库的路径, %matlab%/bin/win32。具体操作:选择Enviroment选项卡,点击new按钮,新建变量path,变量值为D:/MyProgram/matlab/bin/win32。点击Apply按钮应用。(此步骤可以在系统的环境变量中配置)

       设置好参数后,点击run按钮,即可运行程序。   

3)  mcrroot替换matlabroot再次测试程序。执行好这一步后就可以直接使用mcr运行程序,即使没有安装matlab也可以使用。

(1)       安装mcr。运行之前Matlab的发布工具面板打包的可执行程序magicsquare_pkg.exe,解压出4个文件:_install.batmagicsquare.jarreadme.txtMCRInstaller.exe。运行MCRInstaller.exe,安装至指定目录,假设为D:/MyProgram/matlab/mrc/v78

安装过程中可能会出现以下错误,点击ok按钮继续安装即可。

 

(2)       打开Enviroment编辑path变量,选择之前的path变量,点击Edit按钮。把pathValue值改:D:/MyProgram/matlab/mrc/v78/runtime/win32

 

 

 
附件1.

/* getmagic.java

 * This file is used as an example for the MATLAB

 * Builder JA product.

* Copyright 2001-2006 The MathWorks, Inc.

 */

/* Necessary package imports */

import com.mathworks.toolbox.javabuilder.*;

import magicsquare.*;

/* getmagic class computes a magic square of order N. The

 * positive integer N is passed on the command line.

 */

public class Getmagic

{

   public static void main(String[] args)

   {

      MWNumericArray n = null;   /* Stores input value */

      Object[] result = null;    /* Stores the result */

      magic theMagic = null;     /* Stores magic class instance */

 

      try

      {

         /* If no input, exit */

         if (args.length == 0)

         {

            System.out.println("Error: must input a positive integer");

            return;

         }

 

         /* Convert and print input value*/

         n = new MWNumericArray(Double.valueOf(args[0]),MWClassID.DOUBLE);

 

         System.out.println("Magic square of order " + n.toString());

 

         /* Create new magic object */

         theMagic = new magic();

 

         /* Compute magic square and print result */

         result = theMagic.makesqr(1, n);

         System.out.println(result[0]);

      }

      catch (Exception e)

      {

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

      }

 

      finally

      { /* Free native resources */

         MWArray.disposeArray(n);

         MWArray.disposeArray(result);

         if (theMagic != null)

            theMagic.dispose();

      }

   }

}

 

 

原创粉丝点击