欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

Java Builder 初体验,javabuilder初体验

来源: javaer 分享于  点击 31631 次 点评:62

Java Builder 初体验,javabuilder初体验


原创】Java Builder 初体验

2006-10-19 11:43 junziyang 【原创】Java Builder 初体验

MATLAB的最新版本2006b中新添了一个产品-MATLAB Builder for Java。其实本来Matlab就有Java外部程序接口,不过原来的接口只能在.m文件中调用Java,而无法在Java程序中调用Matlab。新的Java Builder为我们在Java程序中调用Matlab丰富的数值计算资源提供了极大的便利。
            与MATLAB对其他程序的外部接口相比,我觉得Java接口在一下几个方面比较有特色:
          (1)在.m文件中可以直接调用Java资源。例如可以调用JDK中的界面元素构建用户界面。
          (2)可以利用Java在网络功能方面的优势,开发基于Web的应用程序。

            由于Java Builder是个新产品,我也是相应 bainhome版主的号召,现炒现卖:),旨在抛砖引玉,引发有兴趣的网友的共同讨论。错误之处敬请批评指正。

 

2006-10-19 11:45 junziyang 什么是MATLAB Builder for Java?

MATLAB Builder for Java(又叫Java Builder)是对MATLAB Compiler的扩展。用Java Builder可以将MATLAB函数包装到一个或多个Java类中形成一个Java组件或包。每个MATLAB函数被封装为Java类的一个方法,可以在Java应用程序中被调用。

 

2006-10-19 12:10 junziyang 环境变量设置

为了使用Java Builder来进行开发,你的计算机上必须安装有JDK,而且必须对自己计算机的环境变量进行必要的设置,具体步骤如下:
     (1)点击 开始->右击“我的电脑”,选择“属性”。在弹出的“系统属性”对话框中选择“高级”标签,然后点击下发的“环境变量”按钮。
     (2)设置JAVA_HOME 变量
              a. 点击弹出的对话框中上方的“新建”按钮;
              b. 变量名:JAVA_HOME;
              c. 变量值:JDK的安装目录,需要设置为javac.exe的上一层目录。例如我的机器上javac.exe在C:/Sun/AppServer/jdk/bin中,那么JAVA_HOME的变量值应设为C:/Sun/AppServer/jdk。
              d. 点击“确定”。
     (3)设置CLASSPATH变量
              a. 点击“新建”
              b. 变量名:CLASSPATH
              c. 变量值:.;matlabroot/toolbox/javabuilder/jar/javabuilder.jar;
              d. 点击“确定” 。
     (4)“确定”,“确定”,退出属性设置。

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

[[i] 本帖最后由 junziyang 于 2006-10-19 12:44 编辑 [/i]]

 

2006-10-19 12:53 junziyang 用Java Builder创建Java组件的步骤

为了创建组件您需要写好M-代码(或使用已有代码),然后在MATLAB的Java编译器中创建一个项目来对代码进行封装。一般步骤如下:
     1. 编写、测试并保存用来创建Java组件的MATLAB代码。
     2. 对计算机的环境变量进行必要的设置。详见Settings for Environment Variables (Development Machine)。
     3.在MATLAB中,执行下列命令打开 Deployment 工具:
                   deploytool
     4.用 Deployment 工具创建包含一个或多个类的项目。
         a. 点击工具栏上的新建项目图标创建项目。
         b. 设定项目名称和位置。
             默认的项目名称为将要创建的包名。您可以更改这一默认值。
         c. 为Java包中将要创建的类添加类名。
         d. 为每个类添加要封装到该类中的一个或多个M-文件。
         e. 根据需要为类添加辅助文件。
         f. 保存项目。
     5. 对包进行编译
         在项目的编译过程中会复制项目的/src子目录下的Java包装类,同时复制项目/distrib子目录下的.jar文件和.ctf文件。/distrib目录下的文件定义了您的Java组件。
         .ctf文件是组件技术文件,在没有安装MATLAB桌面的用户机器上运行封装有MATLAB函数的组件时需要该文件。
     6. 对组件进行测试,根据需要对其进行重编译。
         您或许想在将组件用于应用程序之前或准备提供给他人使用之前对其进行测试。在您的开发平台上测试过组件后,您可以根据需要重新打开项目继续下一步操作。
     7. 创建一个包来将组件和其他必要文件发布给开发人员。这一步骤仅当您想将组件供不同开发机器上的其他应用程序开发人员使用时才需要。
     8. 保存项目
         Java Builder将项目保存到一个.prj文件中。


注:上述内容翻译自MATLAB的帮助文件。

 

2006-10-19 12:55 junziyang 一个简单的例子

下面用taohe帖子[url]http://www.simwe.com/forum/thread-746989-1-2.html[/url]中同样m文件,来演示如何通过Java Builder在Java程序中调用该文件。
            [size=3][b]Matlab Codes:[/b][/size]
                           function y = myadd(a, b)
                           y = a+b;
                           end

步骤如下:
1. 在Editor中编写如上代码,并保存为myadd.m;
2. 在Command Window中执行deploytool,打开Deployment tool窗口。
3. 点击Deployment tool窗口工具栏最左边的新建图标,打开New Deployment Project 对话框。从左边选择“MATLAB Builder for Java”,得到如下画面:

[[i] 本帖最后由 junziyang 于 2006-10-19 17:23 编辑 [/i]]

 

2006-10-19 17:32 junziyang 一个简单的例子(续)

4. Name栏填myadd.prj。点击“Ok"按钮。
5. 将myadd.m拖入myaddclass中,如下图所示。然后点击工具栏上的保存按钮,保存项目。

 

2006-10-19 17:36 junziyang 6. 点击Deployment tool 窗口工具栏上的Build the Project 图标编译项目。编译完成后在你的工作目录上会出现一个myadd文件夹,其中有两个名称分别为distrib和src的文件夹。distrib中的文件就是Java Builder生成的可发布文件。共有两个文件:myadd.jar和myadd.ctf。
7. 将MATLAB的当前目录切换到distrib目录。用winrar等软件将myadd.jar “解压到当前文件夹”。解压后你会看到两个文件夹:META-INF和myadd。如下图所示:

[[i] 本帖最后由 junziyang 于 2006-10-19 17:44 编辑 [/i]]

 

2006-10-19 17:47 junziyang 8. 在Matlab的Editor中新建一文件。输入下面的内容,并保存为MJBuilderTest.java。 (注意扩展名)

/* Necessary package imports */
import com.mathworks.toolbox.javabuilder.*;
import myadd.*;
/*
* MJBuilderTest class test the myadd class created by Java Builder. The
* inputs are passed on the command line.
*/
class MJBuilderTest
{
     public static void main(String[] args)
     {
         MWNumericArray a = null;    /* Stores input values a */
         MWNumericArray b = null;    /* Stores input values b */
         Object[] result = null;     /* Stores the result */
         myaddclass myAdd = null;      /* Stores myadd class instance */
         try
         {
             /* 检测输入变量 */
             if (args.length != 2)
             {
                 System.out.println("Error: must input 2 numbers!");
                 return;
             }
            
             /* 接收输入变量 */
             a = new MWNumericArray(Double.valueOf(args[0]),MWClassID.DOUBLE);
             b = new MWNumericArray(Double.valueOf(args[1]),MWClassID.DOUBLE);
             /* 创建myaddclass对象 */
             myAdd = new myaddclass();
            
             /* 计算并输出结果 */
             result = myAdd.myadd(1, a, b);
             System.out.print("/nThe sum of " + a.toString() + " and " + b.toString() + " is: ");
             System.out.println(result[0]);
         }
         catch (Exception e)
         {
             System.out.println("Exception: " + e.toString());
         }
        
         finally
         {
             /* Free native resources */
             MWArray.disposeArray(a);
             MWArray.disposeArray(b);
             MWArray.disposeArray(result);
             if (myAdd != null)
                 myAdd.dispose();
         }
     }
}

 

2006-10-19 17:50 junziyang 9. 在Command Window中执行如下代码进行编译:
                 !javac MJBuilderTest.java

10. 编译通过后,执行如下代码:
                 !java MJBuilderTest 1 2

      你将会看到如下结果:
                The sum of 1 add 2 is: 3

 

2006-10-19 20:35 taohe 热烈鼓掌和支持。测试了一下,成功!不过我为了区分开,我把这个例子的工程名字改成了myaddjava,为此也改了MJBuildertest.java里相应的声明。程序运行正常

相关文章

    暂无相关文章
相关栏目:

用户点评