主要内容

整合Java打包到应用程序中

这个例子展示了如何调用MATLAB®Java中生成的方法®应用程序。

要创建一个调用MATLAB生成方法的Java应用程序:

  1. 安装MATLAB运行时并以下列方式之一生成JAR文件:

    • 运行由MATLAB生成的安装程序。它可能位于for_redistribution部署项目的文件夹。

      这样做会自动安装MATLAB运行时并将生成的JAR文件放到计算机上。

    • 手动安装MATLAB运行时以及生成的JAR文件到您的开发系统上。

      生成的JAR文件位于MATLAB部署项目中for_testing文件夹中。有关下载和安装的说明MATLAB运行时,请参阅安装和配置MATLAB运行时

  2. 在包含生成的JAR文件的文件夹中,创建一个名为getmagic.java

  3. 使用文本编辑器,打开getmagic.java

  4. 将以下内容作为文件的第一行。

    进口com.mathworks.toolbox.javabuilder。*;

    该语句导入MATLAB支持类。金宝app

  5. 将下面的行放在第一个import语句之后。

    进口makesqr。*;

    该语句导入编译器生成的类。

  6. 添加以下类定义。

    getmagic {}

    这个类有一个main方法来调用生成的类。

  7. 添加main ()方法到应用程序。

    public static void main(String[] args) {}
  8. 将下面的代码添加到main ()方法。

    MWNumericArray n = null;对象[]result = null;Class1 theMagic = null;

    这将初始化应用程序使用的变量。

    • n是MATLABMWNumericArray类,MATLAB用于其内部数据格式。

    • 结果是一个通用的Java对象,它保存调用MATLAB的结果。

    • theMagic是由MATLAB函数生成的实例类。

  9. 在变量初始化之后添加以下代码。

    如果(arg游戏。{System.out. length == 0);println("错误:必须输入一个正整数");返回;}

    这是一个简单的检查,以确保所需的命令行参数已传递给应用程序。

  10. 在参数检查之后添加try/catch/finally块。

  11. 试一试部分的try/catch/finally块,添加以下代码。

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

    代码实例化的实例MWNumericArray并使用包含在命令行上传递给应用程序的整数的1 × 1数组填充它。将值转换为因为这是Java和MATLAB内部数据表示之间最直接的映射。

  12. 在实例化输入参数的代码之后,添加以下代码实例化MATLAB生成的类。

    theMagic = new Class1();

    生成类的构造函数处理启动所需的所有设置MATLAB运行时并用所需的MATLAB代码填充它。

  13. 使用新实例化的对象,调用MATLAB函数。

    结果= theMagic。makesqr (1, n);System.out.println(结果[0]);
  14. 添加以下部分的try/catch/finally块来处理可能抛出的任何异常。

    catch(异常e) {System.out. catch(异常e);println("Exception: " + e.toString());}
  15. 添加以下最后部分的try/catch/finally块来清理任何资源。

    最后{MWArray.disposeArray (n);MWArray.disposeArray(结果);theMagic.dispose ();}

    disposeArray ()处理()方法清理生成的MATLAB代码所使用的资源。

  16. 保存Java文件。

    完成的Java文件应该如下所示。

    进口com.mathworks.toolbox.javabuilder。*;进口makesqr。*;类getmagic {public static void main(String[] args) {MWNumericArray n = null;对象[]result = null;Class1 theMagic = null;如果(arg游戏。{System.out. length == 0);println("错误:必须输入一个正整数");返回;} try {n = new MWNumericArray(Double.valueOf(args[0]), MWClassID.DOUBLE); theMagic = new Class1(); result = theMagic.makesqr(1, n); System.out.println(result[0]); } catch (Exception e) { System.out.println("Exception: " + e.toString()); } finally { MWArray.disposeArray(n); MWArray.disposeArray(result); theMagic.dispose(); } } }
  17. 使用系统命令行导航到安装生成的Java包并保存新Java文件的文件夹。

  18. 使用javac

    javac类路径”< MATLAB_RUNTIME_INSTALL_DIR >jar \ \工具箱\ javabuilder \ javabuilder.jar”;\ \ getmagic.java makesqr.jar。

    请注意

    进入javac命令行。

    在UNIX®平台,使用冒号()作为类路径分隔符,而不是分号().

    < MATLAB_RUNTIME_INSTALL_DIR >这条路通向哪里MATLAB运行时已安装在您的系统上。如果您在系统上安装了MATLAB,则可以使用MATLAB安装路径。

  19. 从系统的命令提示符中运行应用程序。

    java类路径。”< MATLAB_RUNTIME_INSTALL_DIR >jar \ \工具箱\ javabuilder \ javabuilder.jar”;.\make qr.jar getmagic 5 17 24 18 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9

    你一定要在()在类路径的第一个位置。如果没有,您将得到一条消息,说明Java无法加载该类。

    请注意

    进入java命令行。

    在UNIX平台上,使用冒号()作为类路径分隔符,而不是分号().

    < MATLAB_RUNTIME_INSTALL_DIR >这条路通向哪里MATLAB运行时已安装在您的系统上。如果您在系统上安装了MATLAB,则可以使用MATLAB安装路径。

继续这个例子:

  • 尝试在另一台计算机上安装新的应用程序。

  • 尝试为应用程序构建安装程序。

  • 尝试集成一个包含多个功能的包。